Je suis à peu près à l'aide de GDB pour la première fois. je cours
$ gdb
alors je cours
attach <mypid>
ensuite, je vois que mon processus est bloqué (ce qui est probablement ok). Maintenant je veux qu'il continue à courir, alors je courais
continue
et mon processus continue de courir mais d'ici je suis coincé si je veux encore regarder ma trace de pile actuelle, etc. Je ne pouvais pas sortir de continuer ... j'ai essayé Ctrl-D etc. Mais rien n'a fonctionné pour moi ... (était juste une supposition).
Vous devez interrompre le processus attaché par GDB. Ne pas interrompre le GDB lui-même. Interrompre le processus par Ctrl-C dans le terminal dans lequel le processus a été démarré ou envoyé le processus de SIGINT par Kill -2 Procid. Avec procide l'identifiant du processus étant attaché.
Control + C dans le processus GDB devrait vous ramener à l'invite de commande.
Voici un bref didacticiel GDB , et voici un Manuel complet de GDB .
Le point de débogage consiste à inspecter des parties intéressantes/suspectes du programme. Points d'arrêt Vous permet d'arrêter l'exécution à un emplacement source et WatchPoints vous permettent de vous arrêter lorsque des données intéressantes changent de données.
Exemples simples:
(gdb) break my_function
(gdb) cont
Cela insérera un point d'arrêt au début de my_function
, une fois l'exécution du programme entre dans la fonction, le programme sera suspendu et que vous obtenez de l'invite GDB, et de pouvoir inspecter l'état du programme . Ou vous pouvez étape à travers le code.
(gdb) watch my_var
(gdb) cont
Idem, mais maintenant, le programme sera arrêté à n'importe quel endroit qui modifie la valeur de my_var
.
Fiche vergogne - Voici un lien vers My Présentation GDB AT Groupe d'utilisateurs de NYC BSD . J'espère que cela t'aides.