web-dev-qa-db-fra.com

Comment puis-je arrêter le continue dans GDB

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).

22
Jas

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é.

17
Lopje

Control + C dans le processus GDB devrait vous ramener à l'invite de commande.

5
Tyler McHenry

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.

4
Nikolai Fetissov