web-dev-qa-db-fra.com

démarrer gdb en utilisant un pid

En général, je vois le pid du processus qui s'exécute en arrière-plan et démarre dbx sur ce processus à l'aide de la commande dbx -a <pid>

de même, comment pourrais-je le faire en utilisant gdb?

39
Vijay

Il y a deux façons.

Depuis la ligne de commande, incluez le pid comme argument après le nom de l'exécutable:

gdb /path/to/prog PID

Depuis gdb, vous pouvez utiliser la commande attach:

gdb /path/to/prog
gdb> attach PID

Bien que la spécification sur la ligne de commande soit plus concise, il y a un léger risque que si vous avez un fichier core qui a le même nom que le pid (c'est-à-dire pour le pid 2345, le fichier core devra être nommé "2345 ") alors gdb ouvrira le fichier core. Certes, les chances que cela se produise sont minuscules.

36
R Samuel Klatchko

En plus de la précédente, vous pouvez utiliser directement

gdb -p <pid>
54
zakkak

Depuis la page de manuel de gdb:

Vous pouvez, à la place, spécifier un ID de processus comme deuxième argument, si vous souhaitez déboguer un processus en cours:

gdb program 1234
3
janm