Domanda

In generale vedo pid del processo che è in esecuzione in background e iniziare dbx su quel processo che utilizza il comando dbx -a <pid>

Allo stesso modo come potrei farlo utilizzando gdb?

È stato utile?

Soluzione

Ci sono due modi.

Dalla riga di comando, includono il PID come argomento dopo il nome del file eseguibile:

gdb /path/to/prog PID

Da dentro gdb, è possibile utilizzare il comando attach:

gdb /path/to/prog
gdb> attach PID

Mentre la specificando sulla riga di comando è più conciso, v'è un lieve rischio che se si dispone di un file core che ha un nome che è lo stesso come il pid (vale a dire per pid 2345, il file core avrebbe dovuto essere denominato "2345"), allora gdb aprirà il file core. Certo, la probabilità che ciò accada è minuscola.

Altri suggerimenti

In aggiunta alla precedente è possibile utilizzare direttamente

gdb -p <pid>

Dalla pagina man gdb:

È possibile, invece, specificare un ID di processo come secondo argomento, se si desidera eseguire il debug di un processo in esecuzione:

gdb program 1234
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top