qtcreator und lldb - irgendwas hängt da

serie300

Well-Known Member
Hallo

ich habe eine Anwendung unter FreeeBSD 11.4 (zum erstenmal) mit dem qtcreator (erfolgreich) gebaut und dann versucht einen Debug-Run zu starten. [ Qt Creator 4.12.3; Based on Qt 5.14.2 (Clang 8.0, 64 bit) ]. lldb und clang wurden von qtcreator gefunden und sind als Standardtool eingestellt. Nach dem Bauen wird anscheinend versucht den Debugger anzustarten, aber dann startet der nicht komplett. Start des gebauten Binaries in lldb funktioniert. Lt älteren und neueren Internetposts geht lldb im qtcreator unter *BSD nicht richtig, was genaueres habe ich aber nicht rausgefunden. Mit Einstellen des ebenfalls gefundenen 'gdb' wird bei mir anscheinend gar kein Debugger in qtcreator benutzt.

Weiß jemand mehr? Wäre eine Kombi aus clang und gdb überhaupt sinnvoll und wie bekommt man sie in qtcreator zum Laufen? Ist man an einem Fix dran oder wird das noch länger so bleiben?
Ich bin ja nicht der einzige, der versucht unter qtcreator zu debuggen.
 

Yamagi

Possessed With Psi Powers
Teammitglied
Ohne das konkrete Problem zu kennen, einmal blind geraten: Probiere mal kldload pty. Sehr viele IDEs (u.a. Eclipse und alle Jetbrains-Produkte) nutzen das Linux-PTY-Interface zur Kommunikation mit Kindprozessen wie dem Debugger. Und das ist unter FreeBSD optional.
 

Tulkas

Well-Known Member
Ich hatte mal ein ähnliches Problem was durch den Symlink /usr/home -> /home ausgelöst wurde. Bei mir funktionierte das debuggen, wenn der QTCreator bzw. der Debugger nicht einem symlink folgen musste
 

serie300

Well-Known Member
Danke für die Antworten

-pty: nach kldload pty: Einziger Unterschied die Fehlermeldung schaut leicht anders aus (es kommt 1x öfter ' "LLDB STDERR UNEXPECTED: "error: there is no embedded script interpreter in this mode.\n" '

- /home -> /usr/home: Nach entfernen von /home bricht qtcreator während dem Starten ziemlich kommentarlos ab.
 

momo

Member
qtcreator installiert zwar llvm90, nutzt aber per default den System-LLDB in /usr/bin, der ohne Scripting-Support gebaut ist.

Damit es funktioniert, muss man auf den lldb90 aus /usr/local/bin umstellen:
  1. Tools > Options > Kits -- Reiter Debuggers: Neuen manuellen Eintrag mit /usr/local/bin/lldb90 hinzufügen und bspw "Ports Debugger" nennen
  2. Dann zurück zum Reiter Kits, statt "Auto-Detected" in der Liste das gewünschte manuelle Kit auswählen (bspw "Desktop (default)"), herunterscrollen und bei Debugger statt des voreingestellten System-Debuggers den neu eingerichteten Debugger ("Ports Debugger") einstellen
Danach sollte es laufen
 
Oben