Pourquoi gdb pendre?

J'ai une application que je suis le débogage et j'essaie de comprendre comment gdb fonctionne et pourquoi je ne suis pas en mesure de vous par le biais de la demande parfois. Le problème que je rencontre est que gdb va s'accrocher et le processus, il est attaché à la volonté de saisir une défunte état quand je suis pas à pas dans le programme. Après gdb se bloque et je dois tuer pour libérer le terminal (ctrl-C ne fonctionne pas, je dois le faire à partir d'une autre fenêtre de terminal par l'obtention de l'id de processus pour que gdb session et l'aide de kill -9).

Je devine que gdb est suspendu parce qu'il est en attente pour l'application de s'arrêter à la prochaine instruction, et en quelque sorte l'application terminée l'exécution sans gdb identification de cette. Mais ce n'est que spéculation de ma part à partir du comportement que j'ai observée à ce jour. Donc ma question est si quelqu'un a déjà vu ce genre de comportement avant et/ou pourrait suggérer que la cause peut être. Je pense que cela pourrait m'aider à améliorer mon débogage d'une stratégie.

En cas de questions que j'utilise g++ 4.4.3, gdb 7.1, fonctionnant sur Ubuntu 10.04 x86_64.

Est-il un minimum de cas de test que vous pouvez donner? Je veux dire, comme l'écrit, il est très difficile de répondre à pourquoi il peut être passe—autres que "peut-être parce que gdb a un bug".
merci pour la suggestion. Dès maintenant l'application a beaucoup de bibliothèque de code, mais je vais voir si je peux faire un petit test de cas que je pouvais poster comme un exemple.
Je vous recommande d'utiliser un plus récent gdb. La version actuelle est 7.3 et ils ont fait beaucoup de progrès. (et BTW, à l'aide de la plus récente g++ ie 4.6.2 serait également utile; car GCC a également progressé sur les informations de débogage).
Je suis l'aide de ce qui est installé avec Ubuntu 10.04 LTS version, et je ne suis pas susceptible de mise à niveau jusqu'à la 12.04 est sorti et testé avec les systèmes que nous utilisons. Mais le test avec une nouvelle version de gdb est une bonne idée de vérifier le problème que je vois, juste au cas où il s'agit d'un bug avec gdb. Donc merci pour la suggestion, je vais essayer avec l'un des systèmes que je peux utiliser.
merci pour la suggestion. J'ai enfin réussi à essayer gdb 7.4 et il semble que fixe le problème que j'ai eu, donc je pense qu'il y a certains bug qui a déjà été résolu.

OriginalL'auteur Gabriel Southern | 2012-01-23