Afficher le contenu du Tableau dans Qt Creator débogueur
Je suis à l'aide de Qt sur Ubuntu. Quand je debug, je ne vois que la première valeur du tableau dans les Locaux et les Observateurs. Comment puis-je afficher tout le contenu du tableau?
struct node
{
int *keys;
void **pointers;
int num_keys;
struct node *parent;
int is_leaf;
struct node *nextLevelNode;
};
Il affiche uniquement la première valeur de la clé dans la fenêtre de débogage.
OriginalL'auteur nikhil | 2011-09-23
Vous devez vous connecter pour publier un commentaire.
Dans évaluateur d'Expression,
Essayez
(int[10])(*myArray)
au lieu de(int[10])myArray
Ou,
*myArray@10
au lieu demyArray@10
OriginalL'auteur Peter C.
Je suppose que vous faites allusion, le pointeur de clés, a déclaré avec
int *keys;
Le débogueur ne sait pas que c'est un tableau: tout ce qu'il sait, c'est que c'est un pointeur vers un
int
. Donc il ne peut pas savoir combien de valeurs que vous souhaitez afficher.Ce que j'ai trouvé, à l'aide de l'intervalle Qt Creator 2.1.0 débogueur sur Ubuntu, c'est que le code suivant me permet de voir tous les 5 valeurs:
Alors qu'avec ce code, le débogueur affiche uniquement la première valeur, exactement comme vous le décrivez.
De côté: bien sûr, le code ci-dessus devrait être suivi par ce, pour éviter les pertes de mémoire:
Plus tard: Ce Qt Developer Network Post Sur Le Forum dit que vous pouvez dire le débogueur pour afficher un pointeur dans un tableau:
Cela semble comme il se doit.
OriginalL'auteur Clare Macrae
Il suffit de cliquer droit sur votre variable, et choisir
Change Value Display Format
et vérifierArray of 100 items
.OriginalL'auteur Matthieu H
Dans Qt pour mac ce qui a fonctionné pour moi a été:
OriginalL'auteur André Ladeira
Deux dimensions des tableaux parfois ne peuvent pas être affichés de cette façon. Il y a un travail autour de. Tout d'abord, déclarer un tableau à deux dimensions comme un tableau à une dimension comme ceci:
Puis ajouter
(int[3][4]) *array2D
à l'évaluateur d'expression. Malheureusement, vous avez à l'indice sur le tableau de votre auto, mais vous pouvez écrire une fonction en ligne ou utiliser une autre méthode d'encapsulation pour le rendre un peu plus propre.OriginalL'auteur centarix