commencer à gdb en utilisant un pid
Question
En général, je vois le pid
du processus qui exécute en arrière-plan et commencer à dbx sur ce processus en utilisant la commande dbx -a <pid>
De même comment pourrais-je le faire en utilisant gdb?
La solution
Il y a deux façons.
À partir de la ligne de commande, y compris le pid comme argument après le nom de l'exécutable:
gdb /path/to/prog PID
De l'intérieur de gdb, vous pouvez utiliser la commande joindre:
gdb /path/to/prog
gdb> attach PID
Alors que la spécification sur la ligne de commande est plus concis, il y a un léger risque que si vous avez un fichier de base qui a un nom qui est le même que le pid (par exemple pour pid 2345, le fichier de base devrait être nommé « 2345 »), puis gdb va ouvrir le fichier de base. Certes, la chance que cela se produise est minuscule.
Autres conseils
En plus de la précédente, vous pouvez utiliser directement
gdb -p <pid>
A partir de la page de manuel gdb:
Vous pouvez, au lieu, spécifiez un ID de processus en tant que second argument, si vous voulez déboguer un processus en cours d'exécution:
gdb program 1234