comment obtenir le plus possible de dbx
Question
Je travaille quotidiennement avec TDD pour mon développement C ++ sous Solaris10. Cela a considérablement réduit le temps que je dois passer à utiliser mon débogueur, mais c'est parfois la seule option.
DBX est assez puissant mais pas aussi convivial. Notez que je parle de la console DBX et non de l'interface graphique de SunStudio pour DBX).
Quels sont les meilleurs conseils de productivité que vous puissiez donner pour le débogage de dbx C ++?
PS. Changer de débogueur n’est pas une option.
La solution
J'ai ajouté quelques sites liés à dbx. Les voici, sans ordre particulier, au cas où ils pourraient vous être utiles:
- Pourquoi la recherche de ma fonction par dbx est-elle impossible?
- Aide en ligne du débogueur Dbx
- Sun Studio: débogage d'une application multithread w / dbx
- gdb et dbx: mappage des commandes et comparaison des fonctionnalités
- Importation d'informations de débogage dans dbx
- ligne de commande dbx: voir plus de sources
- Sun Studio C ++ - Votre fichier .dbxrc (Remarque: adapter le type entier utilisé pour convertir les pointeurs en fonction de la taille de votre pointeur)
- Sun Studio: recherche des fuites de mémoire avec dbx
- Sun Studio: collecte des allocations de mémoire / fuites de données, à partir de un processus en cours
EDIT le 19 juillet 2012: J'ai essayé de réparer plusieurs liens depuis que le blog de Chris Quenelle a été déplacé. Certains articles sont toujours accessibles via la machine à remonter.
Autres conseils
Une des fonctionnalités puissantes de dbx est la fonctionnalité intégrée à ksh. Vous pouvez écrire des fonctions de shell aussi complexes que vous le souhaitez pour imprimer des vues personnalisées de structures de données ou suivre les pointeurs d'un itinéraire spécifique. Le shell est une ancienne version de pdksh, donc ce n’est pas la meilleure solution pour la programmation, mais c’est bien mieux que de ne pas utiliser de langage intégré à utiliser. Une aide importante est également disponible à partir de la ligne de commande. Une astuce pour rechercher de l'aide consiste à utiliser " vi $ helpfile " depuis le shell de commande dbx. Cela corrige les données brutes de helpfile dans un fichier volumineux. Vous pouvez voir quelques exemples de fonctions shell dans le fichier dbxrc fourni avec dbx et chargé par défaut. Vous pouvez voir un exemple plus sophistiqué en consultant le module d'intégration libumem. Vous pouvez le trouver ici:
http://blogs.oracle.com/quenelle/entry/using_dbx_and_libumem_to
Moi aussi dois utiliser dbx au travail et comprendre vos frustrations!
J'ai découvert quelques astuces qui facilitent un peu ma vie:
Utiliser le système de commandes construit comme ceci:
when stop {print quoique ; }
Évidemment, cela ne fonctionne pas quand quoi que soit hors de portée, mais je le trouve assez utile. Je n'ai pas encore eu beaucoup de joie avec l'installation 'trace', YMMV.
Créer votre propre fichier .dbxrc vous simplifie la vie, de même que le fichier "pathmap". fonctionnalité.
Enfin, cela n’est évident que si vous le connaissez déjà, mais essayez Manuel de Sun .
Ce n'est pas particulièrement bien écrit, mais reste une lecture essentielle.