Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt de notatie wijzigen waarin een waarde wordt weergegeven in de vensters Watch, Autos en Locals met behulp van opmaakaanduidingen.
U kunt ook opmaakaanduidingen gebruiken in het Immediate venster, het opdrachtvenster, in tracepoints en zelfs in bronvensters. Als u een expressie in deze vensters onderbreekt, wordt het resultaat weergegeven in een DataTip. De DataTip-weergave volgt de opmaakspecifier.
Opmerking
Wanneer het systeemeigen foutopsporingsprogramma van Visual Studio is gewijzigd in een nieuwe foutopsporingsengine, zijn er enkele nieuwe indelingsaanduidingen toegevoegd en zijn sommige oude verwijderd. Het oudere foutopsporingsprogramma wordt nog steeds gebruikt wanneer u foutopsporing uitvoert (gemengd systeemeigen en beheerd) met C++/CLI.
Formaatspecificaties opgeven
We gebruiken de volgende voorbeeldcode:
int main() {
int my_var1 = 0x0065;
int my_var2 = 0x0066;
int my_var3 = 0x0067;
}
Voeg de my_var1 variabele toe aan het venster Watch tijdens het debuggen> in Windows>Watch>Watch 1. Klik vervolgens met de rechtermuisknop op de variabele en selecteer Hexadecimale weergave. In het venster Controle ziet u nu de waarde 0x0065. Als u deze waarde wilt weergeven als een teken in plaats van een geheel getal, klikt u eerst met de rechtermuisknop en schakelt u hexadecimale weergave uit. Voeg vervolgens de tekenopmaakaanduiding toe, c in de kolom Naam na de naam van de variabele. In de kolom Waarde wordt nu 101 'e' weergegeven.
U kunt een lijst met beschikbare opmaakaanduidingen weergeven en selecteren door een komma (,) toe te voegen aan de waarde in het Watch venster.
Opmaakaanduidingen
In de volgende tabellen worden de indelingsaanduidingen beschreven die u in Visual Studio kunt gebruiken. Vetgedrukte specificaties worden alleen ondersteund voor de nieuwe debugger en niet voor interop-debugging met C++/CLI.
| Specificator | Formaat | Oorspronkelijke horlogewaarde | Weergegeven waarde |
|---|---|---|---|
| d | decimaal geheel getal | 0x00000066 | 102 |
| o | niet-ondertekend octaal geheel getal | 0x00000066 | 000000000146 |
| x h |
hexadecimaal geheel getal | 102 | 0xcccccccc |
| X H |
hexadecimaal geheel getal | 102 | 0xCCCCCCCC |
| xb Hb |
hexadecimaal geheel getal (zonder voorloop van 0x) | 102 | cccccccc |
| Xb Hb |
hexadecimaal geheel getal (zonder voorloop van 0x) | 102 | CCCCCCCC |
| b | niet-ondertekend binair geheel getal | vijfentwintig | 0b00000000000000000000000000011001 |
| Bb | niet-ondertekend binair integer (zonder voorafgaande 0b) | vijfentwintig | 00000000000000000000000000011001 |
| e | wetenschappelijke notatie | 25000000 | 2.500000e+07 |
| g | korter in wetenschappelijke of drijvendekommanotatie | 25000000 | 2,5e+07 |
| c | enkel teken | 0x0065 | 101 'e' |
| s | const char* tekenreeks (met aanhalingstekens) | <locatie> "hallo wereld" | "hallo wereld" |
| Sb | const char* tekenreeks (geen aanhalingstekens) | <locatie> "hallo wereld" | Hallo mensen |
| s8 | UTF-8-tekenreeks | <locatie> "Dit is een UTF-8 koffiekopje ☕" | "Dit is een UTF-8 koffiekop ☕ " |
| s8b | UTF-8-tekenreeks (geen aanhalingstekens) | <locatie> "hallo wereld" | Hallo mensen |
| Su | Unicode-tekenreeks (UTF-16-codering) (met aanhalingstekens) | <locatie> L"hallo wereld" | L"hallo wereld" u"hallo wereld" |
| ondertiteling | Unicode-tekenreeks (UTF-16-codering) (geen aanhalingstekens) | <locatie> L"hello world" | Hallo mensen |
| bstr | BSTR binaire tekenreeks (met aanhalingstekens) | <locatie> L"hallo wereld" | L"hallo wereld" |
| Env | Omgevingsblok (dubbel-nul beëindigde tekenreeks) | <locatie> L"=::=:\\" | L"=::=::\\\0=C:=C:\\windows\\system32\0ALLUSERSPROFILE=... |
| s32 | UTF-32-tekenreeks (met aanhalingstekens) | <locatie> U"hallo wereld" | U"hallo wereld" |
| s32b | UTF-32-tekenreeks (geen aanhalingstekens) | <locatie> U"hallo wereld" | Hallo mensen |
| en | enum | Zaterdag(6) | Zaterdag |
| hv | Type aanwijzer : geeft aan dat de waarde van de aanwijzer die wordt geïnspecteerd, het resultaat is van de heaptoewijzing van een matrix, bijvoorbeeld new int[3]. |
<locatie>{<eerste lid>} | <locatie>{<eerste lid>, <tweede lid>, ...} |
| na | Onderdrukt het geheugenadres van een aanwijzer naar een object. | <locatie>, {member=value...} | {member=value...} |
| Nd | Alleen de basisklassegegevens weergeven, waarbij afgeleide klassen worden genegeerd |
(Shape*) square bevat basisklasse- en afgeleide klasse-informatie |
Alleen basisklassegegevens weergeven |
| hr | HRESULT- of Win32-foutcode. Deze aanduiding is niet meer nodig voor HRESULTs omdat het foutopsporingsprogramma deze automatisch codeert. | S_OK | S_OK |
| wc | Vlag van vensterklasse | 0x0010 | WC_DEFAULTCHAR |
| wm | Windows-berichtnummers | 16 | WM_CLOSE |
| nr | Item 'Onbewerkte weergave' onderdrukken | ||
| nvo | Toon item "Onbewerkte Weergave" alleen voor numerieke waarden | ||
| ! | onbewerkte indeling, waarbij eventuele aanpassingen van gegevenstypeweergaven worden genegeerd | <aangepaste weergave> | 4 |
| handvat | Geeft informatie weer over win32 handle | 0x000000000000009c | Geeft nuttige informatie weer over de handle, zoals draad-id, etc. |
Opmerking
Wanneer de hv-indelingsaanduiding aanwezig is, probeert het foutopsporingsprogramma de lengte van de buffer te bepalen en dat aantal elementen weer te geven. Omdat de debugger niet altijd in staat is om de exacte buffergrootte van een array te vinden, moet u waar mogelijk een grootteaanduiding (pBuffer,[bufferSize]) gebruiken. De hv-indelingsaanduiding is handig wanneer de buffergrootte niet direct beschikbaar is.
Grootteaanduidingen voor pointers als arrays
Als u een aanwijzer hebt naar een object dat u als matrix wilt weergeven, kunt u een geheel getal of een expressie gebruiken om het aantal matrixelementen op te geven.
| Specificator | Formaat | Oorspronkelijke horlogewaarde | Weergegeven waarde |
|---|---|---|---|
| n | Decimaal of hexadecimaal geheel getal | pBuffer,[32] pBuffer,[0x20] |
Wordt weergegeven pBuffer als een matrix met 32 elementen. |
| [exp] | Een geldige C++-expressie die resulteert in een geheel getal. | pBuffer,[bufferSize] | Geeft pBuffer weer als een matrix van bufferSize elementen. |
| expand(n) | Een geldige C++-expressie die resulteert in een geheel getal | pBuffer, expand(2) | Geeft het derde element van pBuffer |
Indelingsspecificaties voor interop-debuggen met C++/CLI
| Specificator | Formaat | Oorspronkelijke horlogewaarde | Weergegeven waarde |
|---|---|---|---|
| o | niet-ondertekend octaal geheel getal | 0xF065 | 0170145 |
| x X |
Hexadecimaal geheel getal | 61541 | 0x0000f065 |
| c | enkel teken | <plaats> | 101 'e' |
| s | const char* (met aanhalingstekens) | <plaats> | "hallo wereld" |
| Su | const wchar_t* const char16_t* (met aanhalingstekens) |
<plaats> | L"hallo wereld" |
| ondertiteling | const wchar_t* const char16_t* |
<plaats> | Hallo mensen |
| s8 | const char* (met aanhalingstekens) | <plaats> | "hallo wereld" |
| hr | HRESULT- of Win32-foutcode. Deze aanduiding is niet meer nodig voor HRESULTs omdat het foutopsporingsprogramma deze automatisch codeert. |
S_OK | S_OK |
| wc | Vlag van vensterklasse | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-berichtnummers | 0x0010 | WM_CLOSE |
| ! | onbewerkte indeling, waarbij eventuele aanpassingen van de weergave van het gegevenstype worden genegeerd | <aangepaste weergave> | 4 |
De d-, e-, f-, g-, h-, i-, l-, m-, ma-, mb-, md-, mq-, mu-, mw- en u-specificaties voor systeemeigen en C++/CLI-code vereisten de legacy-debugger, die niet wordt ondersteund in Visual Studio 2022 of latere versies.
Vetgedrukte aanduidingen worden alleen ondersteund voor foutopsporing in systeemeigen en C++/CLI-code. Voor deze aanduidingen is de legacy-debugger vereist, die is opgegeven met de beheerde compatibiliteitsmodus.
| Specificator | Formaat | Oorspronkelijke horlogewaarde | Weergegeven waarde |
|---|---|---|---|
|
d Ik |
tekendecimaal geheel getal | 0xF000F065 | -268373915 |
| u | ongetekend decimaal integer | 0x0065 | 101 |
| o | niet-ondertekend octaal geheel getal | 0xF065 | 0170145 |
| x X |
Hexadecimaal geheel getal | 61541 | 0x0000f065 |
|
l h |
lang of kort voorvoegsel voor: d, i, u, o, x, X | 00406042 | 0x0c22 |
| f | met teken zwevendekomma | (3./2.), f | 1.500000 |
| e | ondertekende wetenschappelijke notatie | (3.0/2.0) | 1.500000e+000 |
| g | ondertekend drijvende komma of ondertekende wetenschappelijke notatie, wat korter is |
(3.0/2.0) | 1.5 |
| c | enkel teken | <plaats> | 101 'e' |
| s | const char* (met aanhalingstekens) | <plaats> | "hallo wereld" |
| Su | const wchar_t* const char16_t* (met aanhalingstekens) |
<plaats> | L"hallo wereld" |
| ondertiteling | const wchar_t* const char16_t* |
<plaats> | Hallo mensen |
| s8 | const char* (met aanhalingstekens) | <plaats> | "hallo wereld" |
| hr | HRESULT- of Win32-foutcode. Deze aanduiding is niet meer nodig voor HRESULTs omdat het foutopsporingsprogramma deze automatisch codeert. |
S_OK | S_OK |
| wc | Vlag van vensterklasse | 0x00000040, | WC_DEFAULTCHAR |
| wm | Windows-berichtnummers | 0x0010 | WM_CLOSE |
| ! | onbewerkte indeling, waarbij eventuele aanpassingen van de weergave van het gegevenstype worden genegeerd | <aangepaste weergave> | 4 |
Indelingsspecificaties voor geheugenlocaties bij interoperabiliteitsdebugging met C++/CLI
In de volgende tabel worden opmaaksymbolen beschreven die worden gebruikt voor geheugenlocaties. U kunt een geheugenlocatieaanduiding gebruiken met een waarde of expressie die resulteert in een locatie.
Vetgedrukte aanduidingen worden alleen ondersteund voor foutopsporing in systeemeigen en C++/CLI-code. Hiervoor is het verouderde foutopsporingsprogramma vereist, dat is opgegeven met de beheerde compatibiliteitsmodus.
| Symbol | Formaat | Oorspronkelijke horlogewaarde | Weergegeven waarde |
|---|---|---|---|
| ma | 64 ASCII-tekens | 0x0012ffac | 0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
| m | 16 bytes in hexadecimaal, gevolgd door 16 ASCII-tekens | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| Mb | 16 bytes in hexadecimaal, gevolgd door 16 ASCII-tekens | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| mw | 8 woorden | 0x0012ffac | 0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
| md | 4 dubbelwoorden | 0x0012ffac | 0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
| mq | 2 quadwoorden | 0x0012ffac | 0x0012ffac 7ffdf0000000000000 5f441a790012fdd4 |
| mu | 2 bytetekens (Unicode) | 0x0012ffac | 0x0012ffac 8478 77f4 ffff ffff 0000 0000 0000 0000 0000 |
Grootteaanduiding voor aanwijzers als matrices in interop-foutopopsporing met C++/CLI
Als u een aanwijzer hebt naar een object dat u als matrix wilt weergeven, kunt u een geheel getal gebruiken om het aantal matrixelementen op te geven.
| Specificator | Formaat | Expression | Weergegeven waarde |
|---|---|---|---|
| n | Decimaal getal | pBuffer[32] | Wordt weergegeven pBuffer als een matrix met 32 elementen. |