8
votes

Débogage Code C ++ avec modèles et STL avec GDB

Que pensent ici les utilisateurs de GDB de ses capacités en matière de débogage du code avec des modèles et de la STL?

Utilisez-vous des astuces pour faire le débogage tout plus simple? Peut-être des scripts de python? Ou êtes-vous satisfait de la façon dont il est actuellement dans GDB (VER 6.X, n'ai pas encore essayé de 7.x)?

Merci.


1 commentaires

Merci, amro et directeur. Je m'attends à obtenir GDB 7.0 dans ma machine Debian (test en cours d'exécution) dans quelques jours. Pendant ce temps, j'essaie de voir comment faire des paramètres dans .gdbinit juste de la bonne façon. Salutations.


5 Réponses :


8
votes

Cela peut être utile: Outils de support STL GDB


0 commentaires

5
votes

Je suppose que vous voulez dire que vous voulez dire Visualizing STL code meilleur (et pas le Débogage mode qui donne des itérateurs sécurisés et des contrôles d'exécution supplémentaires). Je ne suis pas sûr que vous avez examiné ces messages:

  • Documentation GNU GCC: Support de débogage

    en utilisant gdb

    À partir de la version 7.0, GDB inclut le support pour écrire des imprimantes jolies à Python. De jolies imprimantes pour les classes STL sont distribuées avec GCC à partir de la version 4.5.0. La version la plus récente de ces imprimantes est toujours trouvée dans le référentiel LibstDC ++ SVN. Pour activer ces imprimantes, consultez les dernières imprimantes à un répertoire local:


0 commentaires

1
votes

Mon moyen préféré d'utiliser GDB est le mode GDB dans EMACS. Vous obtenez un débogage complet de niveau visuel / source, une fenêtre de thread, une fenêtre de pile (etc.) ... Essayez-la, vous ne serez pas déçu.

Cela dit, GDB gère le débogage de conteneurs STL bien sans aucun ajouter spécial ... Assurez-vous simplement que vous construisez avec -g, et sans --on (de toute sorte) ...


0 commentaires

0
votes

DDD est génial aussi - mon préféré!


0 commentaires

1
votes

Je ne sais pas si vous êtes autorisé à ajouter du code ou que vous ne faites que déboguer le code, désolé. J'ai écrit une simple fonction d'utilité depuis un moment, j'espère que vous le trouverez utile. Vous pouvez facilement imprimer le contenu des conteneurs standard. Il n'y a pas de code spécifique à la plate-forme, un exemple d'utilisation (le pilote de test): xxx

Je n'ai pas encore écrit le code des conteneurs de boost. J'espère que je vais le faire quelque temps:)

Tout ce que vous avez à faire, c'est d'inclure ce fichier ["streamer.hpp"]: xxx < / p>


1 commentaires

Merci pour l'échantillon de code et l'exemple. Actuellement, j'essaie de ne pas utiliser de code externe pour cela. Idéalement, j'aimerais que GDB soit soit de sorte que de manière native (jolie impression a été mentionnée) ou faire un script pour GDB qui l'aide à le faire. D'autres réponses, je suis bancaire sur la nouvelle version de GDB pour être meilleure à cet égard. Et, BTW, j'écris mon propre code. Salutations.