Wie greife ich auf einen auf GDB laufenden Prozess zu?

Wie greife ich auf einen auf GDB laufenden Prozess zu?

Ich habe also versucht, ein Programm zu debuggen, das auf zwei Knoten läuft. Ich verwende Yod als Task-Launcher.

 yod -hosts node01,node02 ./dist_task -nl 2

Das Programm hängt. Also wollte ich die GDB so verwenden

 yod -hosts node01,node02 gdb ./dist_task

Ich bin in einer GDB-Sitzung in Knoten01, aber in Knoten02 kann ich nicht. Was passiert, ist, dass ich den laufenden Prozess (gdb ./dist_task) auf dem Remoteknoten (Knoten02 über htop) sehen kann, aber ich kann nicht einsteigen. Ich habe versucht, eine Verbindung zum GDB-Prozess herzustellen (ich versuche nur, eine Verbindung zum GDB-Prozess herzustellen), wie wir es normalerweise bei einem Prozess tun würden, aber in meinem Fall, da es bereits GDB ist, erhalte ich Informationen zum GDB, aber nicht zum Prozess.

PS: Ich habe es über Xterm versucht, aber auch da hatte ich kein Glück (ich kann nicht zwei Xterms öffnen).

Antwort1

Sie missbrauchenattach

Aus den Dokumenten:

attach process-id
    This command attaches to a running process—one that was started outside gdb

Sie können versuchen, sie zu starten und yod -hosts node01,node02 ./dist_task -nl 2dann eine Verbindung zu ihnen herzustellen, indem Sie den attachBefehl in der GDB-Eingabeaufforderung verwenden odergdb -a <pid>

verwandte Informationen