Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan ändra formatet där ett värde visas i fönstren Klocka, Autos och Locals med hjälp av formatspecificerare.
Du kan också använda formatspecificerare i fönstret Omedelbart , kommandofönstret , i spårningspunkter och även i källfönster. Om du pausar ett uttryck i dessa fönster visas resultatet i en DataTip. DataTip-visningen visar formatspecificeraren.
Anmärkning
När det inbyggda Felsökningsprogrammet i Visual Studio ändrades till en ny felsökningsmotor lades vissa nya formatspecificerare till och några gamla togs bort. Det äldre felsökningsprogrammet används fortfarande när du felsöker interop (blandat inbyggt och hanterat) med C++/CLI.
Ange formatangivelser
Vi använder följande exempelkod:
int main() {
int my_var1 = 0x0065;
int my_var2 = 0x0066;
int my_var3 = 0x0067;
}
Lägg till variabeln my_var1 i Watch-fönstret vid felsökning, Debug>Windows>Watch>Watch 1. Högerklicka sedan på variabeln och välj Hexadecimal visning. Nu visar fönstret Watch värdet 0x0065. Om du vill se det här värdet uttryckt som ett tecken i stället för ett heltal högerklickar du först och avmarkerar Hexadecimal display. Lägg sedan till teckenformatsspecificeraren , c i kolumnen Namn efter variabelnamnet. Kolumnen Värde visar nu 101 "e".
Du kan visa och välja från en lista över tillgängliga formatspecificerare genom att lägga till ett kommatecken (,) till värdet i bevakningsfönstret .
Formatspecifikatorer
I följande tabeller beskrivs de formatspecificerare som du kan använda i Visual Studio. Specificerare i fetstil stöds bara för det nya felsökningsprogrammet och inte för interop-felsökning med C++/CLI.
| Specificerare | Format | Ursprungs klocktidvärde | Värde som visas |
|---|---|---|---|
| d | heltal i decimalsystemet | 0x00000066 | 102 |
| o | osignerat oktalt heltal | 0x00000066 | 000000000146 |
| x h |
hexadecimalt heltal | 102 | 0xcccccccc |
| X H |
hexadecimalt heltal | 102 | 0xCCCCCCCC |
| Xb Hb |
hexadecimalt heltal (utan inledande 0x) | 102 | cccccccccc |
| Xb Hb |
hexadecimalt heltal (utan inledande 0x) | 102 | CCCCCCCC |
| b | osignerat binärt heltal | 25 | 0b00000000000000000000000000011001 |
| Bb | osignerat binärt heltal (utan inledande 0b) | 25 | 00000000000000000000000000011001 |
| e | vetenskaplig notation | 25000000 | 2.500000e+07 |
| g | kortare av antingen vetenskaplig notation eller flyttalsrepresentation | 25000000 | 2.5e+07 |
| c | enskilt tecken | 0x0065 | 101 'e' |
| s | const char* sträng (med citattecken) | <plats> "hello world" | hej världen |
| Sb | const char* string (inga citattecken) | <plats> "hello world" | Hej världen |
| s8 | UTF-8-sträng | <plats> "Detta är en UTF-8 kaffekopp ☕" | "Det här är en UTF-8 kaffekopp ☕" |
| s8b | UTF-8-sträng (inga citattecken) | <plats> "hello world" | Hej världen |
| Su | Unicode-sträng (UTF-16-kodning) (med citattecken) | <lokalisering> L"Hej världen" | L"Hej världen" "hej världen" |
| sub | Unicode-sträng (UTF-16-kodning) (inga citattecken) | <location> L"hej världen" | Hej världen |
| bstr | BSTR-binär sträng (med citattecken) | <location> L"Hej världen" | L"hej världen" |
| env | Miljöblock (dubbelnoll-terminerad sträng) | <location> L"=::=::\\" | L"=::=::\\\0=C:=C:\\windows\\system32\0ALLUSERSPROFILE=... |
| s32 | UTF-32-sträng (med citattecken) | <location> U"Hej världen" | U"Hej världen" |
| s32b | UTF-32-sträng (inga citattecken) | <location> U"hello world" | Hej världen |
| sv | enum | Lördag(6) | lördag |
| Hv | Pekartyp – indikerar att pekarvärdet som inspekteras är resultatet av heapallokeringen av en matris, till exempel new int[3]. |
<lokalisering>{<första medlemmen>} | <plats>{<första medlem>, <andra medlem>, ...} |
| Na | Undertrycker minnesadressen för en pekare till ett objekt. | <location>, {member=value...} | {member=value...} |
| Nd | Visar endast basklassinformationen och ignorerar härledda klasser |
(Shape*) square innehåller information om basklass och härledd klass |
Visar endast basklassinformation |
| hr | HRESULT- eller Win32-felkod. Den här specificeraren behövs inte längre för HRESULTs eftersom felsökningsprogrammet avkodar dem automatiskt. | S_OK | S_OK |
| wc | Flagga för fönsterklass | 0x0010 | WC_DEFAULTCHAR |
| wm | Windows-meddelandenummer | 16 | WM_CLOSE |
| nr | Undertryck "Raw View"-objekt | ||
| nvo | Visa "Raw View"-objekt endast för numeriska värden | ||
| ! | raw-format, ignorerar alla anpassningar av datatyper | <anpassad representation> | 4 |
| handtag | Visar information om win32-handtag | 0x000000000000009c | Visar användbar information om handtag, till exempel tråd-ID osv. |
Anmärkning
När hv-formatspecificeraren finns försöker felsökaren fastställa längden på bufferten och visa det antalet element. Eftersom det inte alltid är möjligt för felsökaren att hitta den exakta buffertstorleken för en matris bör du använda en storleksspecificerare (pBuffer,[bufferSize]) när det är möjligt. HV-formatspecificeraren är användbar när buffertstorleken inte är lätt tillgänglig.
Storleksspecificerare för pekare som matriser
Om du har en pekare till ett objekt som du vill visa som en matris kan du använda ett heltal eller ett uttryck för att ange antalet matriselement.
| Specificerare | Format | Ursprungs klocktidvärde | Värde som visas |
|---|---|---|---|
| n | Decimal- eller hexadecimalt heltal | pBuffer,[32] pBuffer,[0x20] |
Visas pBuffer som en 32-elementmatris. |
| [exp] | Ett giltigt C++-uttryck som utvärderas till ett heltal. | pBuffer,[bufferSize] | Visar pBuffer som en matris med bufferSize element. |
| expand(n) | Ett giltigt C++-uttryck som utvärderas till ett heltal | pBuffer, expand(2) | Visar det tredje elementet i pBuffer |
Formatera specificerare för interop-felsökning med C++/CLI
| Specificerare | Format | Ursprungs klocktidvärde | Värde som visas |
|---|---|---|---|
| o | osignerat oktalt heltal | 0xF065 | 0170145 |
| x X |
Hexadecimalt heltal | 61541 | 0x0000f065 |
| c | enskilt tecken | <plats> | 101 'e' |
| s | const char* (med citattecken) | <plats> | hej världen |
| Su | const wchar_t* const char16_t* (med citattecken) |
<plats> | L"hej världen" |
| sub | const wchar_t* const char16_t* |
<lokation> | Hej världen |
| s8 | const char* (med citattecken) | <lokation> | hej världen |
| hr | HRESULT- eller Win32-felkod. Den här specificeraren behövs inte längre för HRESULTs eftersom felsökningsprogrammet avkodar dem automatiskt. |
S_OK | S_OK |
| wc | Flagga för fönsterklass | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-meddelandenummer | 0x0010 | WM_CLOSE |
| ! | råformat, ignorerar alla anpassningar av datatypsvyer | <anpassad representation> | 4 |
D, e, f, g, h, i, l, m, ma, mb, md, mq, mu, mw och u specificerare för inbyggd C++/CLI-kod och inbyggd kod krävde det äldre felsökningsverktyget, som inte stöds i Visual Studio 2022 eller senare versioner av Visual Studio.
Specificerare i fetstil stöds endast för felsökning av inbyggd kod och C++/CLI-kod. Dessa specificerare kräver det äldre felsökningsprogrammet, som anges med Hanterat Kompatibilitetsläge.
| Specificerare | Format | Ursprungs klocktidvärde | Värde som visas |
|---|---|---|---|
|
d jag |
signerat decimal heltal | 0xF000F065 | -268373915 |
| u | intesignerat decimaltal | 0x0065 | 101 |
| o | osignerat oktalt heltal | 0xF065 | 0170145 |
| x X |
Hexadecimalt heltal | 61541 | 0x0000f065 |
|
l h |
långt eller kort prefix för: d, i, u, o, x, X | 00406042 | 0x0c22 |
| f | signerad flyttals | (3./2.), f | 1.500000 |
| e | teckenförsedd vetenskaplig notation | (3.0/2.0) | 1.500000e+000 |
| g | signerad flyttal eller signerad vetenskaplig notation, vilket som än är kortare |
(3.0/2.0) | 1.5 |
| c | enskilt tecken | <plats> | 101 'e' |
| s | const char* (med citattecken) | <plats> | hej världen |
| Su | const wchar_t* const char16_t* (med citattecken) |
<plats> | L"hej världen" |
| sub | const wchar_t* const char16_t* |
<plats> | Hej världen |
| s8 | const char* (med citattecken) | <plats> | hej världen |
| hr | HRESULT- eller Win32-felkod. Den här specificeraren behövs inte längre för HRESULTs eftersom felsökningsprogrammet avkodar dem automatiskt. |
S_OK | S_OK |
| wc | Flagga för fönsterklass | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-meddelandenummer | 0x0010 | WM_CLOSE |
| ! | råformat, ignorerar alla anpassningar av datatypsvyer | <anpassad representation> | 4 |
Formatera specificerare för minnesplatser i interop-felsökning med C++/CLI
I följande tabell beskrivs formateringssymboler som används för minnesplatser. Du kan använda en minnesplatsspecificerare med valfritt värde eller uttryck som utvärderas till en plats.
Specificerare i fetstil stöds endast för felsökning av inbyggd kod och C++/CLI-kod. Detta kräver det äldre felsökningsprogrammet, specificerat med Hantereat Kompatibilitetsläge.
| Symbol | Format | Ursprungs klocktidvärde | Värde som visas |
|---|---|---|---|
| mA | 64 ASCII-tecken | 0x0012ffac | 0x0012ffac .4...0...". 0W&....... 1W&.0.:W.. 1....".. 1.JO&.1.2..".. 1...0y.... 1 |
| m | 16 byte i hexadecimalt, följt av 16 ASCII-tecken | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| MB | 16 byte i hexadecimalt, följt av 16 ASCII-tecken | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| mw | 8 ord | 0x0012ffac | 0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
| md | 4 dubbla ord | 0x0012ffac | 0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
| mq | 2 fyrord | 0x0012ffac | 0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
| Mu | 2-byte-tecken (Unicode) | 0x0012ffac | 0x0012ffac 8478 77f4 ffff ffff 0000 0000 0000 0000 0000 |
Storleksspecificerare för pekare som matriser i interop-felsökning med C++/CLI
Om du har en pekare till ett objekt som du vill visa som en matris kan du använda ett heltal för att ange antalet matriselement.
| Specificerare | Format | Expression | Värde som visas |
|---|---|---|---|
| n | Decimal heltal | pBuffer[32] | Visas pBuffer som en matris med 32 element. |