Wenn Sie ein statisch zugewiesenes Array haben, kann der Visual Studio-Debugger problemlos alle Array-Elemente anzeigen. Wenn Sie jedoch ein Array dynamisch zugewiesen haben und auf das ein Zeiger zeigt, wird das erste Element des Arrays nur angezeigt, wenn Sie auf das + klicken, um es zu erweitern. Gibt es eine einfache Möglichkeit, dem Debugger mitzuteilen, dass diese Daten als Array vom Typ Foo und Größe X angezeigt werden?
c++
c
visual-studio
debugging
Adam Rosenfield
quelle
quelle
Es gibt zwei Methoden zum Anzeigen von Daten in einem Array m4x4:
Eine Möglichkeit ist ein Überwachungsfenster (Debug / Windows / Watch). Watch hinzufügen =
Dies zeigt Daten in einer Liste an:
Ein anderer Weg ist mit einem Speicherfenster (Debug / Windows / Speicher). Geben Sie eine Speicherstartadresse an =
Dadurch werden Daten in einer Tabelle angezeigt, was für zwei- und dreidimensionale Matrizen besser ist:
Klicken Sie mit der rechten Maustaste auf das Speicherfenster, um festzulegen, wie die Binärdaten angezeigt werden. Die Auswahlmöglichkeiten beschränken sich auf Ganzzahlen, Gleitkommazahlen und einige Textcodierungen.
quelle
Fügen Sie in einem Überwachungsfenster ein Komma nach dem Namen des Arrays und der Anzahl der Elemente ein, die angezeigt werden sollen.
quelle
ein erneuter Besuch:
Nehmen wir an, Sie haben einen Zeiger unten:
Dann können Sie unten in Visual Studio Debug Watch schreiben:
Dadurch wird es in ein Array wie unten umgewandelt, und Sie können alle Inhalte auf einmal anzeigen.
quelle
Zum,
füge dies hinzu, um es zu sehen
quelle
Eine weitere Möglichkeit hierfür ist hier in MSDN angegeben .
Kurz gesagt, Sie können ein Zeichenarray als verschiedene Arten von Zeichenfolgen anzeigen. Wenn Sie ein Array deklariert haben als:
Sie können es als Unicode-Zeichenfolge im Überwachungsfenster wie folgt drucken:
In den Tabellen auf der MSDN-Seite finden Sie alle möglichen Konvertierungen, da es einige gibt. Viele verschiedene Zeichenfolgenvarianten, Varianten zum Drucken einzelner Elemente im Array usw.
quelle
a,[10]
können Sie einzelne Elemente anzeigen, sodass sie selbst erweiterbar sind, selbst wenn Sie über ein CArray komplexer Datentypen verfügen.Für MFC-Arrays (CArray, CStringArray, ...) folgen Sie dem nächsten Link in Tipp 4
http://www.codeproject.com/Articles/469416/10-More-Visual-Studio-Debugging-Tips-for-Native-De
Fügen Sie beispielsweise für "CArray pArray" die Überwachungsfenster hinzu
um die ersten 5 Elemente zu sehen.
Wenn pArray ein zweidimensionales CArray ist, können Sie jedes der Elemente der zweiten Dimension mit der nächsten Syntax betrachten:
quelle
Eine Liste vieler Dinge, die Sie mit Variablen tun können, finden Sie im Überwachungsfenster in diesem Juwel in den Dokumenten: https://msdn.microsoft.com/en-us/library/75w45ekt.aspx
Für eine Variable a gibt es die Dinge, die bereits in anderen Antworten wie erwähnt wurden
Es gibt jedoch noch viele andere Spezifizierer für Format und Größe, z.
quelle
Ich habe keine Möglichkeit gefunden, dies mit einem mehrdimensionalen Array zu verwenden. Sie können jedoch zumindest (wenn Sie den Index Ihres gewünschten Eintrags kennen) eine Uhr zu einem bestimmten Wert hinzufügen. Verwenden Sie einfach den Indexoperator.
Für ein Array mit dem Namen current, in dem sich ein Array mit dem Namen Attribs befindet und in dem sich ein Array mit dem Namen Attrib befindet, sollte es so aussehen, wenn Sie Position 26 einnehmen müssen:
Sie können auch einen Offset verwenden
zeigt ne "nächste" 25 Elemente. (Ich verwende VS2008, dies zeigt maximal 25 Elemente).
quelle