So debuggen Sie einen gegabelten untergeordneten Prozess mit CLion

Lesezeit: 2 Minuten

Benutzer-Avatar
DYS

Ich habe ein Linux-C-Programm mit dem internen Debugger von CLion (unter Linux gdb) debuggt. Das Programm hat einen untergeordneten Prozess gegabelt, der an dem von mir festgelegten Haltepunkt unterbrochen werden sollte. Aber der Debugger hörte hier nicht auf, selbst wenn ich ihn eingegeben hatte set follow-fork-mode child im GDB-Panel. Wie kann ich das mit CLion realisieren?

  • Mögliches Duplikat von How set follow-fork-mode as child in debuger using CMake

    – Yoav Feuerstein

    21. Januar 2017 um 11:49 Uhr

Ich folgte der Antwort von @MarkusParker, aber statt set auto-load safe-path / ich benutzte set detach-on-fork off um die Trennung vom untergeordneten Prozess zu verhindern. Diese Anleitung funktioniert bei mir:

  1. Setzen Sie einen Unterbrechungspunkt am Anfang Ihres Programms (dh des übergeordneten Programms, nicht des untergeordneten Programms).

  2. Starten Sie das Programm im Debugger.

  3. Gehen Sie in clion zur Debugger-Konsole (Tab mit der Bezeichnung gdb) und geben Sie ein set follow-fork-mode child und set detach-on-fork off.

  4. Fahren Sie mit dem Debuggen fort.

  • Da dies eine beliebte Antwort ist, können Sie diese Befehle nicht jedes Mal eingeben, wenn Sie diese Datei erstellen ~/.gdbinit und fügen Sie diese Befehle darin ein (jeweils in einer separaten Zeile). Dies wird wahrscheinlich nur wirksam, wenn Sie die gdb Ihres Systems verwenden.

    – JAAAY

    2. September um 12:30 Uhr

Verwenden Sie die GDB-Registerkarte des Debuggers:

Geben Sie set follow-fork-mode child ein und deaktivieren Sie den Detach-on-Fork-Modus
Geben Sie hier die Bildbeschreibung ein

laut diesem Link Debugger: Unterstützung von Zielen mit mehreren Prozessen
Es wird in Clion immer noch nicht unterstützt. set detach-on-fork off fügt dem Frame einen Thread hinzu, aber Sie können den untergeordneten Prozess immer noch nicht steuern. Und Clion “behandelt das Beenden eines der Untergebenen als Ende der Debugging-Sitzung, obwohl andere noch laufen”.

Ich denke, es gibt das gleiche Problem mit vscode.

Stellen Sie sicher, dass Sie eingestellt sind set follow-fork-mode child vor der Gabelung.

1370490cookie-checkSo debuggen Sie einen gegabelten untergeordneten Prozess mit CLion

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy