Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können das Format ändern, in dem ein Wert in den Fenstern Watch, Autos und Locals angezeigt wird, indem Sie Formatbezeichner verwenden.
Sie können auch Formatbezeichner im Direktfenster, im Befehlsfenster, in Tracepoints und sogar in Quellfenstern verwenden. Wenn Sie einen Ausdruck in diesen Fenstern anhalten, wird das Ergebnis in einer Dateninfo angezeigt. Die Dateninfoanzeige spiegelt den Formatbezeichner wider.
Hinweis
Wenn sich der systemeigene Debugger von Visual Studio in ein neues Debuggingmodul geändert hat, wurden einige neue Formatbezeichner hinzugefügt, und einige alte wurden entfernt. Der ältere Debugger wird weiterhin verwendet, wenn Sie das Interoperabilitätsdebugging (gemischt systemeigenes und verwaltetes) Debuggen mit C++/CLI durchführen.
Festlegen von Formatbezeichnern
Wir verwenden den folgenden Beispielcode:
int main() {
int my_var1 = 0x0065;
int my_var2 = 0x0066;
int my_var3 = 0x0067;
}
Fügen Sie die my_var1 Variable beim Debuggen dem Watch-Fenster hinzu, Debug>Windows>Watch>Watch 1. Klicken Sie als Nächstes mit der rechten Maustaste auf die Variable, und wählen Sie "Hexadezimalanzeige" aus. Jetzt zeigt das Überwachungsfenster den Wert 0x0065 an. Um diesen Wert als Zeichen statt als ganze Zahl ausgedrückt zu sehen, klicken Sie zuerst mit der rechten Maustaste, und deaktivieren Sie die Hexadezimalanzeige. Fügen Sie dann den Zeichenformatbezeichner c in der Spalte "Name " nach dem Variablennamen hinzu. Die Spalte "Wert " zeigt jetzt 101 "e".
Sie können eine Liste der verfügbaren Formatbezeichner anzeigen und auswählen, indem Sie ein Komma (,) an den Wert im Überwachungsfenster anfügen.
Formatbezeichner
In den folgenden Tabellen werden die Formatbezeichner beschrieben, die Sie in Visual Studio verwenden können. Fett formatierte Spezifizierer werden nur vom neuen Debugger unterstützt und nicht für das Interoperabilitäts-Debugging mit C++/CLI.
| Spezifikationssymbol | Format | Originaler Uhrenwert | Angezeigter Wert |
|---|---|---|---|
| d | Dezimal-Ganzzahl | 0x00000066 | 102 |
| o | nicht signierte oktale ganze Zahl | 0x00000066 | 000000000146 |
| x h |
hexadezimale ganze Zahl | 102 | 0xcccccccc |
| X H |
hexadezimale ganze Zahl | 102 | 0xCCCCCCCC |
| xb Hb |
Hexadezimale Ganzzahl (ohne führendes 0x) | 102 | cccccccc |
| Xb Hb |
Hexadezimaler Ganzzahl (ohne vorausgehende 0x) | 102 | CCCCCCCC |
| b | Nicht signierte binäre ganze Zahl | 25 | 0b00000000000000000000000000011001 |
| Bb | nicht signierte binäre ganze Zahl(ohne führende 0b) | 25 | 00000000000000000000000000011001 |
| e | wissenschaftliche Schreibweise | 25000000 | 2.500000e+07 |
| g | kürzer von wissenschaftlichen oder Gleitkommapunkten | 25000000 | 2,5e+07 |
| c | einzelnes Zeichen | 0x0065 | 101 'e' |
| s | const char* string (mit Anführungszeichen) | <location> "Hallo Welt" | "Hallo Welt" |
| Sb | const char* string (keine Anführungszeichen) | <Location> "Hello World" | Hallo Welt |
| s8 | UTF-8-Zeichenfolge | <Ort> "Dies ist eine UTF-8 Kaffee-Tasse ☕" | "Dies ist eine UTF-8-Kaffeebecher ☕ " |
| s8b | UTF-8-Zeichenfolge (keine Anführungszeichen) | <Standort> "Hallo Welt" | Hallo Welt |
| Su | Unicode-Zeichenfolge (UTF-16-Codierung) (mit Anführungszeichen) | <location> L"hallo Welt" | L"Hallo Welt" "Hallo Welt" |
| sub | Unicode-Zeichenfolge (UTF-16-Codierung) (keine Anführungszeichen) | <location> L"Hallo Welt" | Hallo Welt |
| bstr | BSTR-Binäre Zeichenfolge (mit Anführungszeichen) | <location> L"hello world" | L"Hallo Welt" |
| Umgebung | Umgebungsblock (Zeichenfolge mit Doppel-Null-Beendigung) | <location> L"=::::\\" | L"=:::\\\0=C:=C:\\windows\\system32\0ALLUSERSPROFILE=... |
| s32 | UTF-32-Zeichenfolge (mit Anführungszeichen) | <location> U"hello world" | U"Hallo Welt" |
| s32b | UTF-32-Zeichenfolge (keine Anführungszeichen) | <location> U"hello world" | Hallo Welt |
| en | enum | Samstag(6) | Saturday |
| Hv | Zeigertyp - gibt an, dass der zu prüfende Zeigerwert das Ergebnis der Heap-Zuordnung eines Arrays ist, z. B. new int[3]. |
<Standort>{<erstes Element>} | <Ort>{<erstes Mitglied>, <zweites Mitglied>, ...} |
| Na | Unterdrückt die Speicheradresse eines Zeigers auf ein Objekt. | <Standort>, {member=value...} | {member=value...} |
| Nd | Zeigt nur die Basisklasseninformationen an, wobei abgeleitete Klassen ignoriert werden |
(Shape*) square enthält Basisklassen- und abgeleitete Klasseninformationen |
Zeigt nur Basisklasseninformationen an. |
| Hr | HRESULT- oder Win32-Fehlercode. Dieser Bezeichner wird für HRESULTs nicht mehr benötigt, da der Debugger sie automatisch decodiert. | S_OK | S_OK |
| WC | Windows-Klassenflagge | 0x0010 | WC_DEFAULTCHAR |
| wm | Windows-Nachrichtennummern | 16 | WM_CLOSE |
| Nr | "Element 'Rohansicht' unterdrücken" | ||
| nvo | Nur das Element "Rohansicht" für numerische Werte anzeigen | ||
| ! | unformatiertes Format, wobei alle Anpassungen von Datentypansichten ignoriert werden | <angepasste Darstellung> | 4 |
| Griff | Zeigt Informationen zum Win32-Handle an | 0x000000000000009c | Zeigt nützliche Informationen zu Handle wie Thread-ID usw. an. |
Hinweis
Wenn der hv-Formatbezeichner vorhanden ist, versucht der Debugger, die Länge des Puffers zu bestimmen und diese Anzahl von Elementen anzuzeigen. Da es für den Debugger nicht immer möglich ist, die genaue Puffergröße eines Arrays zu finden, sollten Sie nach Möglichkeit einen Größenbezeichner (pBuffer,[bufferSize]) verwenden. Der hv-Formatbezeichner ist nützlich, wenn die Puffergröße nicht leicht verfügbar ist.
Größenbezeichner für Zeiger als Arrays
Wenn Sie einen Zeiger auf ein Objekt haben, das Sie als Array anzeigen möchten, können Sie eine ganze Zahl oder einen Ausdruck verwenden, um die Anzahl der Arrayelemente anzugeben.
| Spezifikationssymbol | Format | Originaler Uhrenwert | Angezeigter Wert |
|---|---|---|---|
| n | Dezimal- oder Hexadezimal-Ganzzahl | pBuffer;[32] pBuffer;[0x20] |
pBuffer wird als 32-Element-Array angezeigt. |
| [exp] | Ein gültiger C++-Ausdruck, der als ganze Zahl ausgewertet wird. | pBuffer;[bufferSize] | Zeigt pBuffer als Array von bufferSize Elementen an. |
| expand(n) | Ein gültiger C++-Ausdruck, der als ganze Zahl ausgewertet wird | pBuffer, erweitern(2) | Zeigt das dritte Element von pBuffer |
Formatieren von Bezeichnern für das Interoperabilitätsdebugging mit C++/CLI
| Spezifikationssymbol | Format | Originaler Uhrenwert | Angezeigter Wert |
|---|---|---|---|
| o | nicht signierte oktale ganze Zahl | 0xF065 | 0170145 |
| x X |
hexadezimale Ganzzahl | 61541 | 0x0000f065 |
| c | einzelnes Zeichen | <Ort> | 101 'e' |
| s | const char* (mit Anführungszeichen) | <Ort> | "Hallo Welt" |
| Su | const wchar_t* const char16_t* (mit Anführungszeichen) |
<Ort> | L"Hallo Welt" |
| sub | const wchar_t* const char16_t* |
<Ort> | Hallo Welt |
| s8 | const char* (mit Anführungszeichen) | <Ort> | "Hallo Welt" |
| Hr | HRESULT- oder Win32-Fehlercode. Dieser Bezeichner wird für HRESULTs nicht mehr benötigt, da der Debugger sie automatisch decodiert. |
S_OK | S_OK |
| WC | Windows-Klassenflagge | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-Nachrichtennummern | 0x0010 | WM_CLOSE |
| ! | unformatiertes Format, wobei alle Anpassungen der Datentypansicht ignoriert werden | <angepasste Darstellung> | 4 |
Der d-, e-, f-, g-, h-, i-, l-, m-, ma-, mb-, md-, mq-, mu-, mw- und u-Bezeichner für systemeigenen und C++/CLI-Code benötigten den Legacy-Debugger, der in Visual Studio 2022 oder höheren Versionen nicht unterstützt wird.
Spezifizierer in Fettschrift werden nur für das Debuggen von systemeigenem und C++/CLI-Code unterstützt. Für diese Spezifizierer ist der Legacy-Debugger erforderlich, der mithilfe des Managed-Kompatibilitätsmodus angegeben wird.
| Spezifikationssymbol | Format | Originaler Uhrenwert | Angezeigter Wert |
|---|---|---|---|
|
d i |
Vorzeichenbehaftete Dezimalzahl | 0xF000F065 | -268373915 |
| u | Nicht signierte ganzzahlige Dezimalzahl | 0x0065 | 101 |
| o | nicht signierte oktale ganze Zahl | 0xF065 | 0170145 |
| x X |
hexadezimale Ganzzahl | 61541 | 0x0000f065 |
|
l h |
langes oder kurzes Präfix für: d, i, u, o, x, X | 00406042 | 0x0c22 |
| f | signierter Gleitkommapunkt | (3./2.), f | 1.500000 |
| e | signierte wissenschaftliche Schreibweise | (3.0/2.0) | 1.500000e+000 |
| g | signierter Gleitkommapunkt oder signierte wissenschaftliche Notation, je nachdem, was kürzer ist |
(3.0/2.0) | 1.5 |
| c | einzelnes Zeichen | <Ort> | 101 'e' |
| s | const char* (mit Anführungszeichen) | <Ort> | "Hallo Welt" |
| Su | const wchar_t* const char16_t* (mit Anführungszeichen) |
<Ort> | L"Hallo Welt" |
| sub | const wchar_t* const char16_t* |
<Ort> | Hallo Welt |
| s8 | const char* (mit Anführungszeichen) | <Ort> | "Hallo Welt" |
| Hr | HRESULT- oder Win32-Fehlercode. Dieser Bezeichner wird für HRESULTs nicht mehr benötigt, da der Debugger sie automatisch decodiert. |
S_OK | S_OK |
| WC | Windows-Klassenflagge | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-Nachrichtennummern | 0x0010 | WM_CLOSE |
| ! | unformatiertes Format, wobei alle Anpassungen der Datentypansicht ignoriert werden | <angepasste Darstellung> | 4 |
Formatbezeichner für Speicherorte beim Interoperabilitätsdebugging mit C++/CLI
In der folgenden Tabelle werden Formatierungssymbole beschrieben, die für Speicherorte verwendet werden. Sie können einen Speicherortbezeichner mit jedem Wert oder Ausdruck verwenden, der zu einem Speicherort ausgewertet wird.
Spezifizierer in Fettschrift werden nur für das Debuggen von systemeigenem und C++/CLI-Code unterstützt. Dies erfordert den Legacy-Debugger, angegeben mittels des Managed Compatibility Mode.
| Symbol | Format | Originaler Uhrenwert | Angezeigter Wert |
|---|---|---|---|
| Mama | 64 ASCII-Zeichen | 0x0012ffac | 0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
| m | 16 Byte hexadezimal, gefolgt von 16 ASCII-Zeichen | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| MB | 16 Byte hexadezimal, gefolgt von 16 ASCII-Zeichen | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| Mw | 8 Wörter | 0x0012ffac | 0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
| md | 4 Doppelwörter | 0x0012ffac | 0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
| mq | 2 Quadwords | 0x0012ffac | 0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
| µ | 2-Byte-Zeichen (Unicode) | 0x0012ffac | 0x0012ffac 8478 77f4 ffff ffff 0000 0000 0000 0000 0000 |
Größenbezeichner für Zeiger als Arrays beim Interopdebugging mit C++/CLI
Wenn Sie einen Zeiger auf ein Objekt haben, das Sie als Array anzeigen möchten, können Sie eine ganze Zahl verwenden, um die Anzahl der Arrayelemente anzugeben.
| Spezifikationssymbol | Format | Ausdruck | Angezeigter Wert |
|---|---|---|---|
| n | Dezimalzahl (Ganzzahl) | pBuffer[32] | Wird als Array aus 32 Elementen angezeigt pBuffer. |