Specifikátory formátu v jazyce C++
Při ladění nativního kódu v okně Sledování nebo dialogovém okně QuickWatch můžete změnit formát, ve kterém se zobrazí hodnota, pomocí specifikátorů formátu.
(Většina specifikátorů formátu jsou pouze pro nativní kód, ale jazyk Visual C# má omezenou sadu specifikátorů formátu.Viz Specifikátory formátu v jazyce C#.)
Specifikátory formátu lze použít také v okně Okamžité na příkazovém řádku a dokonce i ve zdrojových oknech.Pokud pozastavíte výraz v těchto oknech, výsledek se zobrazí v datovém tipu.Datové tipy budou odrážet formát specifikátoru v zobrazení datového tipu.
[!POZNÁMKA]
Nativní ladicí modul sady Visual Studio převedený do nového modulu pro ladění.Součástí této změny bylo také přidání některých nových specifikátorů formátu a odstranění některých jejich starých verzí.Přechod není úplný a starší ladicí program je stále používán, když provedete ladění spolupráce (smíšená nativní a spravovaná) pomocí C + +/ CLI, a při ladění pomocí jazyka C++ upravíte a pokračujete.Sekce v tomto tématu uvádí specifikátory formátu pro každý ladicí stroj.
Specifikátory formátu Visual Studio 2012 popisují specifikátory formátu v novém ladicím modulu.
Specifikátory formátu pro interop ladění a C++ Upravit a pokračovat popisuje specifikátory formátu staršího modulu pro ladění.
Obsah
Příklad
Specifikátory formátu Visual Studio 2012
- Velikost specifikátoru pro ukazatele jako pole v aplikaci Visual Studio 2012
Specifikátory formátu pro interop ladění a C++ Uprav a pokračuj
Specifikátory formátu umístění paměti pro interop ladění a C++ Upravit a pokračovat
Specifikátor velikosti ukazatelů v podobě polí pro definiční ladění a úpravy a pokračování v jazyce C++
Příklad
Předpokládejme, že nVar je proměnná typu integer a Okno kukátka obsahuje jeho hodnotu 0x0065.Chcete-li zobrazit hodnotu vyjádřenou jako znak namísto celého čísla ve sloupci Název, přidejte za název proměnné specifikátor formátu znaku, c:
Místo celočíselné hodnoty 0x0065 sloupec Hodnota nyní zobrazuje hodnotu znaku 101 'e'.
Pokud chcete aplikovat specifikátor formátu na elementy pole nebo členy objektu, musí ho použít přímo na každý element nebo člen.Nelze ji použít pro pole nebo objekt jako celek.Předpokládejme například, že máte pole nArray a chtěli byste vidět první čtyři elementy ve formátu znaků.Tyto výrazy byste zadali v okně Sledování:
nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c
Specifikátory formátu Visual Studio 2012
Následující tabulky popisují specifikátory formátu, které lze použít v aplikaci Visual Studio 2012, pokud neladíte definiční kód(nativní a spravovaný) v jazyce C++/CLI, nebo nepoužíváte funkci úpravy a pokračování v jazyce C++.
Specifikátory "bold" nejsou podporovány pro definiční ladění v jazyce C++/CLI nebo ladění úprav a pokračování v jazyce C++.
Specifikátor |
Format |
Výraz |
Zobrazená hodnota |
---|---|---|---|
d |
desetinné celé číslo |
0xF000F065, d |
-268373915 |
o |
osmičkové celé číslo bez znaménka |
0xF065, o |
0170145 |
x h |
Šestnáctkové celé číslo |
61546, x 61541, h |
0x0000f06a |
X H |
Šestnáctkové celé číslo |
61541, X 61546, H |
0x0000F06A |
c |
Jeden znak |
0x0065, c |
101 'e' |
s |
Řetězec ASCII |
0x0012fde8, s |
"Hello world" |
sb |
Řetězec ASCII |
0x0012fde8, sb |
Hello world |
su |
Řetězec znaků Unicode |
0x0012fde8, su |
L "Hello world" |
sub |
Řetězec znaků Unicode |
0x0012fde8, sub |
Hello world |
s8 |
Řetězec UTF-8 |
0x0012fde8, s8 |
"Hello world" |
s8b |
Řetězec UTF-8 |
0x0012fde8, s8b |
Hello world |
bstr |
Řetězec BSTR |
0x0032fe8, bstr |
Zdravíme, |
, na |
&myGlobal, n WinMain, na |
Není zobrazena adresa ukazatele. |
|
nd |
pb,nd |
Zobrazí pouze informace o pb základní třídy a ignoruje odvozené třídy |
|
hr |
Kód chyby HRESULT nebo Win32. (Ladicí program nyní dekóduje hodnoty HRESULT automaticky, takže v těchto případech není tento specifikátor vyžadován. |
0x00000000L, hr |
S_OK |
wc |
Příznak třídy okna. |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Čísla zpráv systému Windows |
0x0010, wm |
WM_CLOSE |
! |
Formát RAW ignorující přizpůsobení zobrazení typu dat |
i ! |
4 |
Velikost specifikátoru pro ukazatele jako pole v aplikaci Visual Studio 2012
Pokud máte ukazatel na objekt, který chcete zobrazit v poli, můžete použít k zadání počtu elementů pole celé číslo nebo výraz:
Specifikátor |
Format |
Výraz |
Zobrazená hodnota |
---|---|---|---|
n |
Desetinné číslo nebo šestnáctkové celé číslo |
pBuffer,[32] pBuffer,[0x20] |
Zobrazí pole elementu jako pBuffer 32. |
[exp] |
Platný výraz jazyka C++, který je vyhodnocen jako celé číslo. |
pBuffer,[bufferSize] |
Vyhodnotí bufferSize a zobrazí pBuffer jako pole vyhodnocené počtem elementů. |
rozbalit(n) |
pBuffer, expand(1,2) |
Zobrazí třetí podřízenou položku druhého podřízené položky z pBuffer |
Specifikátory formátu pro interop ladění s C++/CLI a C++ Upravit a pokračovat
Specifikátory "bold" jsou podporovány pouze pro nativní ladění v jazyce C++/CLI a ladění úprav a pokračování v jazyce C++.
Specifikátor |
Format |
Výraz |
Zobrazená hodnota |
---|---|---|---|
d,i |
desítkové celé číslo se znaménkem |
0xF000F065, d |
-268373915 |
u |
desítkové celé číslo bez znaménka |
0x0065, u |
101 |
o |
osmičkové celé číslo bez znaménka |
0xF065, o |
0170145 |
x,X |
Šestnáctkové celé číslo |
61541, x |
0x0000f065 |
l,h |
dlouhé nebo krátké předpony pro: d, i, u, e, x, X |
00406042,hx |
0x0c22 |
f |
plovoucí desetinná čárka se znaménkem |
(3./2.), f |
1.500000 |
e |
matematický zápis se znaménkem |
(3./2.), e |
1.500000e+000 |
g |
plovoucí desetinná čárka se znaménkem nebo matematický zápis se znaménkem, podle toho, co je kratší |
(3./2.), g |
1.5 |
c |
Jeden znak |
0x0065, c |
101 'e' |
s |
Řetězec |
0x0012fde8, s |
"Hello world" |
su |
Řetězec znaků Unicode |
0x0012fde8, su |
L "Hello world" |
sub |
Řetězec znaků Unicode |
0x0012fde8, sub |
Hello world |
s8 |
Řetězec UTF-8 |
0x0012fde8, s8 |
"Hello world" |
hr |
Kód chyby HRESULT nebo Win32. (Ladicí program nyní dekóduje hodnoty HRESULT automaticky, takže v těchto případech není tento specifikátor vyžadován. |
0x00000000L, hr |
S_OK |
wc |
Příznak třídy okna. |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Čísla zpráv systému Windows |
0x0010, wm |
WM_CLOSE |
! |
Formát RAW ignorující přizpůsobení zobrazení typu dat |
i ! |
4 |
Formát specifikátorů paměťových míst v interoperabilním ladění s C + +/ CLI nebo C++ Upravit a pokračovat
Následující tabulka obsahuje symboly formátování použité pro místo v paměti.Specifikátor vyhledávání v paměti můžete použít s libovolnou hodnotou nebo výrazem, který je vyhodnocován na místo.
Symbol |
Format |
Výraz |
Zobrazená hodnota |
---|---|---|---|
ma |
64 znaků ASCII |
ptr, ma |
0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
m |
16 bajtů v šestnáctkovém formátu, následovaný 16 znaky ASCII |
ptr, m |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mb |
16 bajtů v šestnáctkovém formátu, následovaný 16 znaky ASCII |
ptr, mb |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mw |
8 slov |
ptr, mw |
0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
md |
4x Doubleword |
ptr, md |
0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
mq |
2x Quadword |
ptr, mq |
0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
mu |
2bajtové znaky (Unicode) |
ptr, mu |
0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000 |
Specifikátor velikosti ukazatelů v podobě polí pro definiční ladění a úpravy a pokračování v jazyce C++/CLI nebo C++
Pokud máte ukazatel na objekt, který chcete zobrazit v poli, můžete použít k zadání počtu elementů pole celé:
Specifikátor |
Format |
Výraz |
Zobrazená hodnota |
---|---|---|---|
n |
Desetinné celé číslo |
pBuffer[32] |
Zobrazí pole elementu jako pBuffer 32. |