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?
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.
En plus de la précédente, vous pouvez utiliser directement
gdb -p <pid>
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