starten gdb mit einem pid
Frage
Generell sehe ich die pid
des Prozesses, der im Hintergrund läuft, und startet dbx an diesem Prozess des Befehl dbx -a <pid>
mit
ähnlich wie könnte ich es tun mit GDB?
Lösung
Es gibt zwei Möglichkeiten.
Von der Befehlszeile gehört die pid als Argument nach dem Namen der ausführbaren Datei:
gdb /path/to/prog PID
Von innerhalb gdb, können Sie den Befehl anfügen:
gdb /path/to/prog
gdb> attach PID
Während die Spezifizierungs auf der Kommandozeile prägnanter ist, gibt es ein geringes Risiko, dass, wenn Sie eine Core-Datei, die einen Namen hat, die gleiche wie die pid ist (dh für pid 2345, die Core-Datei müssen wäre der Name „2345“), dann gdb wird die Core-Datei öffnen. Zwar ist die Chance, dass dies geschieht Minuskel.
Andere Tipps
Neben der vorherigen können Sie direkt verwenden
gdb -p <pid>
Von der GDB-man-Seite:
Sie können stattdessen eine Prozess-ID als zweites Argument angeben, wenn Sie einen laufenden Prozess debuggen:
gdb program 1234