Quelles sont certaines de vos astuces préférées pour déboguer des programmes C ++ avec GDB? P>
intéressé par toutes les astuces mais aussi p>
Comment vous appelez les méthodes (qui peuvent être virtuelles) sur des objets de GDB P> li>
Inspection Objets STL (jolis imprimez-les) P> LI>
empêcher la GDB d'entrer dans le code STL avec Continuer P> LI>
traiter avec l'inlinisation, les threads, tcmalloc (ou tous les allocateurs personnalisés) p> li>
Garder l'historique des commandes GDB sur différentes sessions p> li> ol>
3 Réponses :
Essayez DDD lorsque vous avez débogué C ++; DDD peut charger dynamiquement le code source pour les bibliothèques partagées et afficher plusieurs variables pendant que vous déboguez. p>
C'était très i> Buggy la dernière fois que je l'ai essayé. Je ne sais pas si cela s'est amélioré entre-temps.
C'est toujours très buggy. Comparé à ce que je vois sur le Mac (Xcode) ou Windows (Studio), c'est des années d'éclairage.
TotalView est meilleur mais coûte que l'argent et le xcode / studio sont dépendants de la plate-forme, donc DDD est parfois la seule option.
KDevelop a un débogueur intégré qui fonctionne de mieux et de mieux (sa nature en cours de développement). Il y a aussi kdbg sous Linux. Je préfère personnellement le débogage avec GDB directement.
1.
set print object
Puisque j'ai découvert comment je pourrais utiliser les crochets dans ~ / .gdbinit pour embellir la sortie de GDB (liste, arrière-plan, etc.), je ne pouvais pas vivre sans que ... p>
Voici un blogentry qui montre comment embellir la sortie du code et mettre un "diviseur" entre vos commentaires: embellir gdb p>
J'ai aussi embelli mon backtrace aussi, extrêmement utile pour trouver où une erreur s'est produite maintenant ... peut-être que je téléchargerai les fichiers nécessaires quand je les ai accès (je ne suis pas au travail maintenant) < / p>
Le lien semble être mort.
Vous avez raison. Cependant, vous pouvez trouver un instantané sur les archives sur Internet: web.archive.org/web/20101217181206/http://...
Je serais très intéressé par la plupart des points que vous avez répertoriés ... très belle question
Un autre élément: une étape unique dans les listes d'initialisation (peut-il être fait avec GDB?)