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? P>
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)? P>
Merci. P>
5 Réponses :
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: p>
en utilisant gdb fort> p> À 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: P> blockQuote>
- JOLIRE IMPRESSION DES LISTES STL LI> ul>
Aussi, essayez d'utiliser KDEvelop / DDD si possible - ils aident. P>
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. P>
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) ... P>
DDD est génial aussi - mon préféré! p>
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): Je n'ai pas encore écrit le code des conteneurs de boost. J'espère que je vais le faire quelque temps:) p> Tout ce que vous avez à faire, c'est d'inclure ce fichier ["streamer.hpp"]: p>
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.
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.