Archiv für den Monat: Mai 2024

Debugging von Daemon-Prozessen

Um Daemon-Prozesse zu debuggen, als Applikation die sich kurz nach dem Start aufgabeln und im Hintergrund weiterlaufen, während der Haupt-Task beendet wird, gibt es im gdb die Möglichkeit Hintergrundprozesse anzubinden.

Zunächst muss dazu ein Start-Skript für gdb erzeugt werden. Dazu wird eine Textdatei mit folgendem Inhalt angelegt:

set target-async on
set pagination off
set non-stop on

Im folgenden wird davon ausgegangen, dass diese Datei unter dem Namen non-stop.gdb abgelegt wurde.

Nun wird der Debugger mit

gdb -x non-stop.gdb

gestartet. Im gdb wird der Debugger mittels eines attach-Kommandos an den Deamon-Prozess angebunden. Mit dem shell-Kommando pgrep kann nach der Prozessnummer gesucht werden. Beim Anbinden des Prozesses wird der Daemon-Prozess angehalten. Um diesen Prozess weiter zu führen, muss das continue-Kommando eingegeben werden.

(gdb) !pgrep YOUR-Daemon
1234
(gdb) attach 1234
(gdb) continue &

Quelle: https://stackoverflow.com/questions/16169022/debugging-a-running-daemon-using-gdb