Come entrare nel processo in esecuzione su gdb?


0

Quindi stavo cercando di eseguire il debug di un programma che gira su due nodi. Uso yod come lanciatore di attività.

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

Il programma è bloccato. Quindi volevo usare gdb in questo modo

 yod -hosts node01,node02 gdb ./dist_task

Sono in sessione gdb in node01 ma per node02 non sono in grado di farlo. Quello che succede è che riesco a vedere il processo in esecuzione (gdb ./dist_task) sul nodo remoto (node02 di htop) ma non riesco ad affrontarlo. Ho provato a fare attach (sto solo cercando di collegarmi al processo gdb) come normalmente faremmo con un processo, ma nel mio caso dato che è già gdb ottengo informazioni sul gdb ma non sul processo.

ps: ho provato a fare xterm ma non ho avuto fortuna neanche lì (non sono in grado di far apparire due xterm)


1
Hai legato per attaccare straceal processo? A proposito waiting, non significastuck
— ott--

ma in questo modo ho potuto solo vedere la chiamata di sistema .. In realtà volevo fare gdb: p .. sì U hai ragione sull'attesa / bloccato, penso che lo correggerò.
— solti,

Un'altra opzione potrebbe essere ltrace, controlla se il tuo sistema lo supporta.
— ott--

hmm ho ltrace .. potrei provare questo allora
— solti

Risposte:


0

Stai abusando attach

Dai documenti:

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

Puoi provare ad avviarli come yod -hosts node01,node02 ./dist_task -nl 2quindi collegandoli tramite il attachcomando dal prompt di gdb o usandogdb -a <pid>


L'ho fatto e non funziona .. dal momento che quando vado a fare il programma allegato è già in esecuzione ... Volevo fare gdb dall'inizio del programma
— solti

Allora potresti voler esaminare gdbserver. In alternativa, invia un SIGINT al processo immediatamente dopo averlo avviato in modo che non continui a essere eseguito e GDB abbia qualcosa a cui collegarsi.
— ssnobody,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.