2010-11-09 6 views
0

Je suis intéressé par l'affichage d'un objet struct/classe d'une manière spécifique par défaut Netbean GDB débogueur pour les projets C et C++ pour que je puisse parcourir le code plus rapide. Pour Java, il existe un moyen facile de le faire en utilisant la section "Variable Formatters" sous Outils -> Options -> Divers -> Formateurs de variables. Je cherche quelque chose de similaire pour C/C++. Cette méthode existe-t-elle?Netbeans impression débogage valeur C/C++

EDIT: Pour clarifier ma question, dans la balise variables débogueur il y a une colonne « Valeur ». Je veux représenter cela comme un appel à partir d'un objet, par exemple printf("%s", MyObject.getHeight());

Répondre

0

Je ne sais pas assez Netbeans pour vous aider avec une macro pour le faire, mais il y a une solution plus facile, que ce soit:

  • laisser l'accès au débogueur une variable (fait 'public' au lieu de privé dans votre classe C++)

ou

  • ajouter ce code dans votre programme: hauteur int = MyObject.getHeight(); donc vous pouvez afficher la variable dans le débogueur.

Les choses sont généralement faites en simplifiant un problème.

+0

Alors que le second point est une solution, cela n'aide pas mon problème. S'il n'y avait qu'une seule instance d'un objet, cela ne me dérangerait pas, mais il y en a des centaines dans tout le programme et je ne veux pas modifier le code source. Pouvez-vous élaborer sur le premier point? Puis-je laisser le débogueur accéder à cette variable de façon à toujours l'afficher dans ce champ de valeur? – Ryan

2

Je crois que ce que vous cherchez peut être accompli en utilisant la fonction assez d'impression Python de gdb, comme expliqué à l'adresse suivante:

https://sourceware.org/gdb/current/onlinedocs/gdb/Pretty-Printing.html#Pretty-Printing https://sourceware.org/gdb/current/onlinedocs/gdb/Pretty-Printing-API.html#Pretty-Printing-API

Utilisation du mécanisme assez d'impression Python, vous pouvez contrôlez comment gdb présentera la valeur d'un type donné à NetBeans. Je l'ai moi-même utilisé pour personnaliser l'affichage, dans l'onglet Variables, pour mes propres classes. Il faut un peu de lecture et un petit peu de connaissances en Python, mais c'est merveilleusement puissant une fois que vous avez compris, et ça vaut vraiment la peine d'apprendre.