2010-01-28 7 views
31

Im Allgemeinen ich mit dem Prozess des pid sehen, die an diesem Prozess im Hintergrund und starten dbx läuft mit dem Befehl dbx -a <pid>gdb startet pid

ähnlich wie könnte ich es gdb tun mit?

Antwort

33

Es gibt zwei Möglichkeiten.

in der Befehlszeile, beinhalten die pid als Argument nach dem Namen der ausführbaren Datei:

gdb /path/to/prog PID 

aus gdb, können Sie den Befehl anfügen:

gdb /path/to/prog 
gdb> attach PID 

Während die Spezifizierungs auf die Die Befehlszeile ist prägnanter, es besteht ein geringes Risiko, dass, wenn Sie eine Kerndatei haben, die einen Namen hat, der der PID entspricht (dh für PID 2345 müsste die Kerndatei "2345" heißen), dann wird gdb Öffnen Sie die Core-Datei. Zugegeben, die Chance, dass dies passiert, ist winzig.

3

Von der GDB Manpage:

können Sie, geben Sie stattdessen eine Prozess-ID als zweites Argument, wenn Sie einen laufenden Prozess debuggen:

gdb program 1234 
42

Neben dem vorherigen können Sie direkt

gdb -p <pid> 
+0

Das ist die richtige Antwort verwenden. Das Anfügen von GDB an eine PID sollte keinesfalls den Pfad zur ausführbaren Datei angeben. Die richtige Lösung sollte nur PID und nichts anderes beinhalten. – AnT