Debugger funktioniert nicht

Für Fragen rund um die Ide und zum Debugger
Antworten
Vamogu05
Beiträge: 24
Registriert: Fr 13. Aug 2021, 10:51

Debugger funktioniert nicht

Beitrag von Vamogu05 »

Liebe Lazarus Spezialisten,

ich arbeite schon sehr lange mit Lazarus, habe aber nun, nachdem ich mir einen neuen Mac Studio gekauft habe, ein Problem mit Lazarus 3.2.
Installiert habe ich es über FPCUPdeluxe V2.4.0d for aarch64-darwin-cocoa. Nach der Installation hatte ich Probleme mit meinen Projekten die am NAS gespeichert waren. Das konnte rasch, dank Eurer Hilfe, gelöst werden. Jetzt brauche ich Lazarus wieder und bemerkte eben, dass der Debugger nicht funktioniert. Wenn ich einen Breakpoint setze stoppt das Programm nicht und eine Fehlermeldung erscheint:
The Debugger encoutered an internal error.
Save your work.
You may then hit 'Stop', or 'Reset debugger' to terminate debug session.

Liegt es an irgendwelchen Einstellungen? Bei mir ist der 'lldb' eingestellt. Der Pfad verweist auf '/Library/Developer/CommandLineTools/usr/bin/lldb'.
Meine Lazarus-Version ist 3.2
FPC-Version ist 3.2.2
macOS Sonoma 14.5

Kann mir bitte jemand helfen.
Ein weiteres Problem von mir mit Lazarus in einem anderen Thread.

Lg

Hannes

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Debugger funktioniert nicht

Beitrag von martin_frb »

Ist der "LLDB + FpDebug" Debugger eingestellt? (Optionen > Debugger > Backend)

Wenn ja, könntest Du ein Logfile erstellen?

Von einem Terminal:

./lazarus.app/MacOS/Content/lazarus --debug-log=YOURLOGFILE --debug-enable=DBG_VERBOSE,DBG_WARNINGS,DBG_ERRORS
DBG_STATE,DBGMI_QUEUE_DEBUG,FPDBG_COMMANDS,FPDBG_QUEUE,DBG_THREAD_AND_FRAME,DBG_CMD_ECHO,DBG_CMD_ECHO_FULL

Vamogu05
Beiträge: 24
Registriert: Fr 13. Aug 2021, 10:51

Re: Debugger funktioniert nicht

Beitrag von Vamogu05 »

Danke Martin,

genau das war es.
Bei mir war Standard LLDB [LLDB Debugger (Alpha)] eingestellt. Ich habe nun über 'Hinzufügen' den LLDB Debugger (with fpdebug) hinzugefügt und die gleiche Commandline wie beim LLDB Alpha darunter eingefügt: (/Library/Developer/CommandLineTools/usr/bin/lldb). Jetzt funktioniert der Debugger wieder.
Was ich jetzt nicht ganz verstehe ist, wieso funktioniert es jetzt obwohl der Pfad auf die gleiche Datei zeigt wie vorher? Ich habe nur den Debuggertyp geändert!

martin_frb
Beiträge: 586
Registriert: Mi 25. Mär 2009, 21:12
OS, Lazarus, FPC: Laz trunk / fpc latest release / Win and other
CPU-Target: mostly 32 bit

Re: Debugger funktioniert nicht

Beitrag von martin_frb »

Beide Backends verwenden den gleichen lldb.

Aber mit FpDebug muss lldb sich nicht um Watches kümmern, sondern nur um Breakpoints. FPC erzeugt Debug info für Watches die lldb nicht immer verträgt. Sobald die IDE bestimmte Watches mit dem nur lldb (ohne FpDebug) abfragt, gibt lldb Fehler zurück.
=> FpDebug wertet Watches weitestgehend ohne lldb aus. Es benötigt nur "mem read" vom lldb. Den Rest (Auflösung Name zur Adresse) muss lldb dann nicht übernehmen.

Ansonsten kann es auch noch andere kleine Unterschiede in der IDE <> Lldb Kommunikation geben, die vielleicht Auswirkungen haben....


Die "lldb alpha" ohne FpDebug ist auch nur ein Nebenprodukt, das als Basis für LLDB + FpDebug dient. Die wird auch nur für die Kombo mit lldb gepflegt.

Vamogu05
Beiträge: 24
Registriert: Fr 13. Aug 2021, 10:51

Re: Debugger funktioniert nicht

Beitrag von Vamogu05 »

Danke für die ausführliche Erklärung.

Antworten