Comment arrêter une exécution de gdb sans point d'arrêt?GDB comment arrêter l'exécution sans point d'arrêt?
Répondre
Il suffit d'utiliser une interruption régulière Ctrl - c fonctionnera très bien. GDB transmet simplement le SIGINT
au processus de débogage qui meurt ensuite. GDB attrape l'exit non standard et interrompt le processus, ce qui vous permet d'examiner tous les threads, leurs piles et les valeurs actuelles des variables. Cela fonctionne bien, mais vous feriez mieux d'utiliser des points de rupture. La seule fois où je me trouve en train de faire ça, c'est si je pense que je suis entré dans une sorte de boucle infinie. Il suffit de taper BREAK sans argument.
J'ai essayé^C mais cela n'a pas fonctionné Je ne suis pas en mesure de taper quoi que ce soit sur l'invite.Aussi le programme est multi-threadé UI, pourrait-il être le problème? – anand
Ctrl-C woks comme je veux, mais je ne reproduis pas cela sur GDB 7.7.1: le processus n'a pas semblé obtenir le Ctrl-C et mourir. Il a seulement été arrêté par GDB, pas tué. Frapper 'c' à nouveau ou' detacher' le fait continuer d'où il s'est arrêté. –
Break, lorsqu'il est appelé sans aucun argument, rupture définit un point d'arrêt à l'instruction suivante à exécuter dans le cadre de la pile sélectionnée
Dans le contexte de gdb, courir, arrêter, pas à pas. C'était exactement le genre de "stop" dont j'avais besoin, tuer l'application était expliqué dans la documentation de gdb. +1 – hobb
Démarrer un shell, trouver l'ID de processus en utilisant ps et l'envoyer SIGSTOP ou SIGINT en utilisant la commande kill (par exemple kill -INT pid).
Les applications graphiques ne réagissent pas à^C et^Casser comme les applications de console. Depuis ces jours, la plupart des projets non triviales ont tendance à être des applications ou des bibliothèques GUI principalement utilisées dans les applications de l'interface graphique, vous avez deux options:
Envoyer SIGSTOP à l'application d'un terminal séparé. C'est lourd.
Si vous appuyez sur^C ou^Pause à l'invite GDB, GDB se termine mais l'application reste en cours d'exécution. Vous pouvez ensuite réexécuter GDB pour y attacher à l'aide du commutateur de ligne de commande
-p
. Cela perd l'état du débogueur.
Dans les deux cas, vous pourriez trouver ce utile: tasklist | grep
ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
Vous pouvez modifier ceci pour une utilisation dans des scripts shell, makefile ou d'envoyer un signal au lieu d'attacher GDB .
info threads
vous aidera à déterminer quel fil vous voulez regarder. Ensuite, utilisez thread
ThreadNumber
pour y basculer.
- 1. Comment arrêter le débogueur Ruby (comme CTL-C de GDB)
- 2. Arrêt du processus inférieur dans GDB SANS signal?
- 3. Capture des frappes sans mise au point
- 4. Comment déboguer le point d'entrée du processus fork-exec dans GDB?
- 5. gdb breakpoint sur pthread_create
- 6. Points d'arrêt GDB
- 7. Comment déterminer les cuboïdes d'un point sans les parcourir tous?
- 8. Comment dissocier une interface sans fil d'un point d'accès?
- 9. En utilisant gdb arrêter le programme quand il utilise une fonction du fichier X
- 10. Mettre à jour une DLL sans arrêter le service
- 11. Comment arrêter l'événement NStimer?
- 12. Comment arrêter un NSInvocationOperation?
- 13. gdb, définir le point d'arrêt sur toutes les fonctions d'un fichier
- 14. Puis-je définir un point d'arrêt sur 'l'accès mémoire' dans GDB?
- 15. Comment lancer gdb avec -quiet dans xcode
- 16. Comment puis-je utiliser "watch" GDB?
- 17. comment puis-je mettre un point d'arrêt sur "quelque chose est imprimé sur le terminal" dans gdb?
- 18. gdb n'atteint pas de points d'arrêt
- 19. gdb dans emacs sur Windows
- 20. Comment arrêter l'exécution du script?
- 21. Comment arrêter cherrypy de l'intérieur?
- 22. Comment arrêter le postback indésirable
- 23. comment arrêter onChange en javascript
- 24. Comment arrêter l'exécution d'autres événements JavaScript
- 25. Débogage avec Eclipse CDT et GDB
- 26. gdb recherche de répertoires source
- 27. Débogage dans Visual Studio 2008 sans définir de point d'arrêt
- 28. Flex. Arrêter le film
- 29. Comment arrêter un Spring JMS MessageListenerAdapter
- 30. Comment arrêter la recherche de regex après 1 match sans utiliser de caractère non gourmand
Comment le processus a-t-il démarré? Comment vous y êtes-vous attaché? Par défaut, attacher avec 'gdb --pid' arrête déjà le processus. Voulez-vous dire après avoir frappé 'c'? –