avviare gdb utilizzando un pid
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?
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