Si vous disposez d'un tableau alloué statiquement, le débogueur Visual Studio peut facilement afficher tous les éléments du tableau. Cependant, si vous avez un tableau alloué dynamiquement et pointé par un pointeur, il affichera uniquement le premier élément du tableau lorsque vous cliquez sur le + pour le développer. Existe-t-il un moyen simple de dire au débogueur, de me montrer ces données sous forme de tableau de type Foo et de taille X?
c++
c
visual-studio
debugging
Adam Rosenfield
la source
la source
Il existe deux méthodes pour afficher les données dans un tableau m4x4:
Une façon est d'utiliser une fenêtre de surveillance (Debug / Windows / Watch). Ajouter une montre =
Cela affiche les données dans une liste:
Une autre méthode consiste à utiliser une fenêtre Mémoire (Debug / Windows / Memory). Spécifiez une adresse de démarrage de la mémoire =
Cela affiche les données dans un tableau, ce qui est mieux pour les matrices à deux et trois dimensions:
Cliquez avec le bouton droit sur la fenêtre Mémoire pour déterminer comment les données binaires sont visualisées. Les choix sont limités aux entiers, aux flottants et à certains encodages de texte.
la source
Dans une fenêtre de surveillance, ajoutez une virgule après le nom du tableau et la quantité d'éléments que vous souhaitez afficher.
la source
une nouvelle visite:
supposons que vous ayez un pointeur ci-dessous:
alors vous pouvez écrire ci-dessous dans la montre de débogage de Visual Studio:
qui le convertira dans un tableau comme ci-dessous, et vous pourrez afficher tout le contenu en une seule fois.
la source
Pour,
ajouter ceci pour regarder
la source
Encore une autre façon de faire cela est spécifiée ici dans MSDN .
En bref, vous pouvez afficher un tableau de caractères sous forme de plusieurs types de chaîne. Si vous avez un tableau déclaré comme:
Vous pouvez l'imprimer sous forme de chaîne Unicode dans la fenêtre de surveillance avec les éléments suivants:
Voir les tableaux sur la page MSDN pour toutes les différentes conversions possibles car il y en a plusieurs. De nombreuses variantes de chaînes différentes, des variantes pour imprimer des éléments individuels dans le tableau, etc.
la source
a,[10]
vous permet de voir des éléments individuels afin qu'ils soient eux-mêmes extensibles, même si vous avez un CArray de types de données complexes.Pour les baies MFC (CArray, CStringArray, ...) en suivant le lien suivant dans son Astuce # 4
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
Par exemple pour "CArray pArray", ajoutez dans les fenêtres de surveillance
pour voir les 5 premiers éléments.
Si pArray est un CArray à deux dimensions, vous pouvez examiner n'importe lequel des éléments de la deuxième dimension en utilisant la syntaxe suivante:
la source
Vous pouvez trouver une liste de nombreuses choses que vous pouvez faire avec des variables dans la fenêtre de surveillance de ce joyau dans la documentation: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
Pour une variable a, il y a les choses déjà mentionnées dans d'autres réponses comme
mais il y a beaucoup d'autres spécificateurs pour le format et la taille, comme:
la source
Je n'ai pas trouvé de moyen de l'utiliser avec un tableau multidimensionnel. Mais vous pouvez au moins (si vous connaissez l'index de votre entrée souhaitée) ajouter une montre à une valeur spécifique. Utilisez simplement l'opérateur index.
Pour un tableau nommé current, qui a un tableau nommé Attribs à l'intérieur, qui contient un tableau nommé Attrib à l'intérieur, cela devrait ressembler à ceci si vous souhaitez avoir à la position 26:
Vous pouvez également utiliser un décalage
affichera les 25 éléments "suivants". (J'utilise VS2008, cela ne montre que 25 éléments maximum).
la source