Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Formátumjelölők használatával módosíthatja, hogy milyen formátumban jelenjen meg egy érték a Watch, az Autos és a Locals ablakban.
A formátumjelölőket az Azonnali ablakban, a Parancs ablakban, a nyomkövetési pontokban és még a forrásablakokban is használhatja. Ha ezekben az ablakokban szüneteltet egy kifejezést, az eredmény egy adatleírásban jelenik meg. A DataTip kijelző a formátumkijelölőt tükrözi.
Megjegyzés:
Amikor a Visual Studio natív hibakeresője új hibakeresési motorra váltott, néhány új formátumjelölőt hozzáadtak, és néhány régit eltávolítottak. A régebbi hibakereső akkor is használható, ha a C++/CLI használatával végez interop (vegyes natív és felügyelt) hibakeresést.
Formátumkijelölők beállítása
A következő példakódot fogjuk használni:
int main() {
int my_var1 = 0x0065;
int my_var2 = 0x0066;
int my_var3 = 0x0067;
}
Adja hozzá a my_var1 változót a Watch ablakhoz hibakeresés közben, Debug>Windows>Watch>Watch 1 alatt. Ezután kattintson a jobb gombbal a változóra, és válassza a Hexadecimális megjelenítés lehetőséget. Most a Figyelő ablak a 0x0065 értéket jeleníti meg. Ha ezt az értéket egész szám helyett karakterként szeretné megjeleníteni, először kattintson a jobb gombbal, és törölje a hexadecimális megjelenítés kijelölését. Ezután adja hozzá a karakterformátum-megadót , c karaktert a változó neve utáni Név oszlopba. Az Érték oszlop ekkor 101 "e" értéket jelenít meg.
Az elérhető formátumjelölők listájából úgy tekintheti meg és választhat, hogy vesszőt (,) fűz hozzá a Figyelő ablakban lévő értékhez.
Formázási definiálók
Az alábbi táblázatok a Visual Studióban használható formátumjelölőket ismertetik. A félkövér betűvel jelölt definiálók csak az új hibakeresőhöz támogatottak, a C++/CLI-vel végzett interop hibakereséshez nem.
| Kijelölő | Formátum | Eredeti óraérték | Megjelenített érték |
|---|---|---|---|
| d | decimális egész szám | 0x00000066 | 102 |
| o | aláíratlan oktális egész szám | 0x00000066 | 000000000146 |
| x h |
hexadecimális egész szám | 102 | 0xcccccccc |
| X H |
hexadecimális egész szám | 102 | 0xCCCCCCCC |
| xb Hb |
hexadecimális egész szám (bevezető 0x nélkül) | 102 | cccccccc |
| Xb Hb |
hexadecimális egész szám (bevezető 0x nélkül) | 102 | CCCCCCCC |
| b | aláíratlan bináris egész szám | 25 | 0b00000000000000000000000000011001 |
| Bb | aláíratlan bináris egész szám (kezdő 0b nélkül) | 25 | 00000000000000000000000000011001 |
| e | tudományos jelölés | 25000000 | 2.500000e+07 |
| g | rövidebb tudományos vagy lebegőpontos | 25000000 | 2,5e+07 |
| c | egyetlen karakter | 0x0065 | 101 'e' |
| s | const char* string (idézőjelekkel) | <location> "hello world" | helló világ |
| Sb | const char* string (idézőjelek nélkül) | <location> "hello world" | Helló világ |
| s8 | UTF-8 sztring | <helyszín> "Ez egy UTF-8 kávés csésze ☕" | "Ez egy UTF-8 kávés csésze ☕" |
| s8b | UTF-8 karakterlánc (nincs idézőjel) | <location> "hello world" | Helló világ |
| Su | Unicode (UTF-16 kódolás) karakterlánc (idézőjelekkel) | <location> L"hello world" | L"szia világ" u"hello world" |
| sub | Unicode (UTF-16 kódolás) karakterlánc (idézőjelek nélkül) | <location> L"hello world" | Helló világ |
| bstr | BSTR bináris sztring (idézőjelekkel) | <location> L"hello world" | L"hello world" |
| Környezet | Környezeti blokk (dupla nullával lezárt karakterlánc) | <hely> L"=::=::\\" | L"=::=::\\\0=C:=C:\\windows\\system32\0ALLUSERSPROFILE=... |
| s32 | UTF-32 karaktersorozat (idézőjelekkel) | <location> U"hello world" | U"hello world" |
| s32b | UTF-32 karakterlánc (idézőjelek nélkül) | <location> U"hello world" | Helló világ |
| En | felsorolás | Szombat(6) | Szombat |
| Hv | Mutató típusa – azt jelzi, hogy a vizsgált mutató értéke egy tömb halomfoglalásának eredménye, például new int[3]. |
<helyszín>{<első tag>} | <location>{<első tag>, <második tag>, ...} |
| Na | Letiltja egy objektumra mutató mutató memóriacímét. | <location>, {member=value...} | {member=value...} |
| Nd | Csak az alaposztály adatait jeleníti meg, figyelmen kívül hagyva a származtatott osztályokat |
(Shape*) square alaposztályt és származtatott osztályinformációkat tartalmaz |
Csak az alaposztály információinak megjelenítése |
| hr | HRESULT vagy Win32 hibakód. Ez a paraméter már nem szükséges a HRESULT-ekhez, mivel a hibakereső automatikusan dekódolja őket. | S_OK | S_OK |
| WC | Ablakosztály jelölője | 0x0010 | WC_DEFAULTCHAR |
| Wm | Windows-üzenetszámok | 16 | WM_CLOSE |
| Nr | "Nyers nézet" elem letiltása | ||
| nvo | A "Nyers nézet" elem megjelenítése csak numerikus értékek esetén | ||
| ! | nyers formátum, figyelmen kívül hagyva az adattípus-nézetek testreszabását | <testreszabott ábrázolás> | 4 |
| fogópont | A win32 fogantyúra vonatkozó információk megjelenítése | 0x000000000000009c | Hasznos információkat jelenít meg a fogantyúkról, például a szálazonosítóról stb. |
Megjegyzés:
Ha a hv formátumjelölő jelen van, a hibakereső megkísérli meghatározni a puffer hosszát, és megjeleníti az elemek számát. Mivel a hibakereső nem mindig találja meg a tömb pontos pufferméretét, lehetőség szerint használjon méretkijelölőt (pBuffer,[bufferSize]) . A hv formátumjelölő akkor hasznos, ha a puffer mérete nem érhető el könnyen.
A mutatók tömbökként való méretkijelölői
Ha egy tömbként megjeleníteni kívánt objektumra mutató mutatóval rendelkezik, egész számmal vagy kifejezéssel megadhatja a tömbelemek számát.
| Kijelölő | Formátum | Eredeti óraérték | Megjelenített érték |
|---|---|---|---|
| n | Decimális vagy hexadecimális egész szám | pBuffer,[32] pBuffer,[0x20] |
pBuffer mint 32 elemből álló tömb jelenik meg. |
| [exp] | Érvényes C++ kifejezés, amely egész számmá értékel. | pBuffer,[bufferSize] | A pBuffer elemtömbként bufferSize jelenik meg. |
| expand(n) | Érvényes C++ kifejezés, amely egész számmá értékel | pBuffer, expand(2) | Megjeleníti a harmadik elemet pBuffer |
A C++/CLI használatával végzett interop hibakeresés formázási specifikátorai
| Kijelölő | Formátum | Eredeti óraérték | Megjelenített érték |
|---|---|---|---|
| o | aláíratlan oktális egész szám | 0xF065 | 0170145 |
| x X |
Hexadecimális egész szám | 61541 | 0x0000f065 |
| c | egyetlen karakter | <helyszín> | 101 'e' |
| s | const char* (idézőjelekkel) | <hely> | helló világ |
| Su | const wchar_t* const char16_t* (idézőjelekkel) |
<lokáció> | L"hello world" |
| sub | const wchar_t* const char16_t* |
<lokáció> | Helló világ |
| s8 | const char* (idézőjelekkel) | <hely> | helló világ |
| hr | HRESULT vagy Win32 hibakód. Ez a paraméter már nem szükséges a HRESULT-ekhez, mivel a hibakereső automatikusan dekódolja őket. |
S_OK | S_OK |
| WC | Ablakosztály jelölője | 0x00000040, | WC_DEFAULTCHAR |
| Wm | Windows-üzenetszámok | 0x0010 | WM_CLOSE |
| ! | nyers formátum, figyelmen kívül hagyva az adattípus nézet testreszabását | <testreszabott ábrázolás> | 4 |
A d, e, f, g, h, i, l, m, ma, mb, md, mq, mu, mw és u specifikátorok, amelyek a natív és C++/CLI kód számára voltak használandók, a régi hibakeresőt igényelték, amit a Visual Studio 2022-es vagy újabb verziói nem támogatnak.
A félkövér betűs definiálók csak natív és C++/CLI-kód hibakereséséhez támogatottak. Ezekhez a szpecifikátorokhoz a felügyelt kompatibilitási móddal megadott régi hibakeresőre van szükség.
| Kijelölő | Formátum | Eredeti óraérték | Megjelenített érték |
|---|---|---|---|
|
d én |
aláírt decimális egész szám | 0xF000F065 | -268373915 |
| u | előjel nélküli decimális egész szám | 0x0065 | 101 |
| o | aláíratlan oktális egész szám | 0xF065 | 0170145 |
| x X |
Hexadecimális egész szám | 61541 | 0x0000f065 |
|
l h |
hosszú vagy rövid előtag: d, i, u, o, x, X | 00406042 | 0x0c22 |
| f | aláírt lebegőpontos | (3./2.), f | 1.500000 |
| e | aláírt tudományos jelölés | (3.0/2.0) | 1.500000e+000 |
| g | aláírt lebegőpontos vagy aláírt tudományos jelölés, amelyik rövidebb |
(3.0/2.0) | 1.5 |
| c | egyetlen karakter | <hely> | 101 'e' |
| s | const char* (idézőjelekkel) | <hely> | helló világ |
| Su | const wchar_t* const char16_t* (idézőjelekkel) |
<hely> | L"hello world" |
| sub | const wchar_t* const char16_t* |
<hely> | Helló világ |
| s8 | const char* (idézőjelekkel) | <hely> | helló világ |
| hr | HRESULT vagy Win32 hibakód. Ez a paraméter már nem szükséges a HRESULT-ekhez, mivel a hibakereső automatikusan dekódolja őket. |
S_OK | S_OK |
| WC | Ablakosztály jelölője | 0x00000040, | WC_DEFAULTCHAR |
| Wm | Windows-üzenetszámok | 0x0010 | WM_CLOSE |
| ! | nyers formátum, figyelmen kívül hagyva az adattípus nézet testreszabását | <testreszabott ábrázolás> | 4 |
Memóriahely-meghatározók formázása a C++/CLI használatával végzett interop hibakeresésben
Az alábbi táblázat a memóriahelyekhez használt formázási szimbólumokat ismerteti. A memóriahely-kijelölőt bármely olyan értékkel vagy kifejezéssel használhatja, amely egy helyre értékelődik ki.
A félkövér betűs definiálók csak natív és C++/CLI-kód hibakereséséhez támogatottak. Ehhez a felügyelt kompatibilitási móddal megadott régi hibakeresőre van szükség.
| Szimbólum | Formátum | Eredeti óraérték | Megjelenített érték |
|---|---|---|---|
| ma | 64 ASCII-karakter | 0x0012ffac | 0x0012ffac .4...0...". 0W&....... 1W&.0.:W.. 1....".. 1.JO&.1.2...".. 1...0y.... 1 |
| m | 16 bájt hexadecimális, majd 16 ASCII karakter | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&. |
| Mb | 16 bájt hexadecimális, majd 16 ASCII karakter | 0x0012ffac | 0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
| mw | 8 szó | 0x0012ffac | 0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
| md | 4 duplaszó | 0x0012ffac | 0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
| mq | 2 quadwords | 0x0012ffac | 0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
| mű | 2 bájtos karakterek (Unicode) | 0x0012ffac | 0x0012ffac 8478 77f4 ffff ffff 0000 0000 0000 0000 |
A mutatók méretkijelölője tömbökként a C++/CLI használatával végzett interop hibakeresésben
Ha egy tömbként megtekinteni kívánt objektumra mutató mutató van, egész számmal megadhatja a tömbelemek számát.
| Kijelölő | Formátum | Expression | Megjelenített érték |
|---|---|---|---|
| n | Decimális egész szám | pBuffer[32] | 32 elemű tömbként jelenik meg pBuffer . |