[gelöst] Debugger unter Linux

Für Fragen rund um die Ide und zum Debugger
Antworten
Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

[gelöst] Debugger unter Linux

Beitrag von Michl »

Servus,

ich möchte gern ein Package unter Linux debuggen. Unter Windows funktioniert das so:
- ich gehe in die Source-Stelle und setze einen Breakpoint
- ich drücke <Shift> + <F11> und füge das Package zum Projekt hinzu
- ich starte das Programm und warte bis der Breakpoint angesprungen wird

Leider funktioniert das unter Linux Mint nicht. Während Breakpoints in dem zum Projekt gehörenden Units angesprungen werden, werden es diese vom Package nicht (auch das hineinsteppen geht nicht).

Füge ich manuell den Pfad der zu debuggenden Package-Source hinzu, funktioniert das hineinsteppen in die Source bzw. ein Breakpoint wird angesprungen. Allerdings glaube (hoffe) ich nicht, dass dies der unter Linux zu gehende Weg ist. Weiß jemand, was ich machen muss, um ein Package, wie oben beschrieben, zu debuggen?

Linux Mint 17.3 KDE GTK2 32bit
Lazarus 1.6 FPC 3.0.0
GNU gdb 7.7.1
Packages: BGRABitmapPack / BGRAControls
Zuletzt geändert von Michl am Di 28. Jun 2016, 22:36, insgesamt 1-mal geändert.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Debugger unter Linux

Beitrag von wp_xyz »

Auf eine ähnliche Frage hat mir jemand, ich glaube es war martin_fr, geantwortet, dass man in solchen Fällen unter "Additions and Overrides" ("Hinzufügungen und Beeinflussungen") die Option -gw2 hinzufügen soll. Und damit hatte ich diese Probleme nie mehr. Nachteil ist, dass das erste Compilieren des Projekts (und auch des nächsten Projekts) etwas dauert, weil alle benötigten Packages mit der entsprechenden Debugger-Info neu gebaut werden.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Debugger unter Linux

Beitrag von Michl »

Hmm, ich hatte -gw -godwarfsets und -gs probiert, beides gleich. Die Debuginfo -gw2 hatte ich nicht probiert, da -gw und -gw2 gleich sein sollen (ruft man "fpc -h" auf, steht dass zumindest dort). Vielleicht ist war -godwarfsets der Schuldige?

Trotzdem, sehr merkwürdig, ich habe einmal den Pfad gesetzt gehabt und wieder entfernt. Jetzt wird, trotz Neuübersetzung der Packages, auch so immer in diese hineingesprungen. Ich kann den Fehler nicht mehr nachstellen.

Vielen Dank erstmal für die Info. Wenn mir dies das nächste mal passiert, werde ich mich an deine Empfehlung zurückerinnern.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Debugger unter Linux

Beitrag von wp_xyz »

-gw2, -gw etc. ist m.E. egal. Es ist wichtig, das die Option bei den "Additions..." gesetzt wird, damit alle Abhängigkeiten entsprechend neu kompiliert werden. Das Setzen unter den Debugger-Optionen hat m.E. nicht denselben Effekt.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Debugger unter Linux

Beitrag von Michl »

Ah, OK, wusste ich nicht. Muss mal schauen, ob ich die Ausgangssituation nochmal herstellen kann. Werde noch ein bisschen experimentieren.

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Debugger unter Linux

Beitrag von Michl »

@wp: Habe gerade Zeit und das gestrige Problem wieder in Augenschein genommen. Ein Clean up and build hat mir das Ausgangsproblem wieder hergestellt. Tatsächlich, wie du gesagt hattest -gw2 bei Additions and Overrides gesetzt und schon funktioniert das Debuggen. Danke nochmal für den Hinweis!

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

Antworten