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 |
Hexadezimale Ganzzahl (ohne führendes 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> "Hallo Welt" | 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) | <location> "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"hallo Welt" | 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"Hallo Welt" | 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.
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. |