C++의 형식 지정자
조사식 창 또는 간략한 조사식 대화 상자에서 네이티브 코드를 디버깅할 때 형식 지정자를 사용하여 값이 표시되는 형식을 변경할 수 있습니다.
대부분의 형식 지정자는 네이티브 코드에만 사용되지만 Visual C#에는 제한된 형식 지정자 집합이 있습니다.C#의 형식 지정자를 참조하십시오.
또한 직접 실행 창, 명령 창 및 소스 창에서도 형식 지정자를 사용할 수 있습니다.이러한 창에서 식을 일시 중지하면 결과가 DataTip에 나타납니다.DataTip 보기에는 형식 지정자에 맞는 DataTip이 표시됩니다.
[!참고]
Visual Studio 네이티브 디버거가 새로운 디버깅 엔진으로 전환되었습니다.이 변경에 따라 몇 가지 새로운 형식 지정자가 추가되고 일부 기존 형식 지정자가 제거되었습니다.아직 전환이 완료되지 않았으며, C++/CLI를 사용하여 interop(혼합 네이티브 및 관리) 디버깅을 수행할 때와 C++ 편집하며 계속하기를 사용하여 디버깅할 때 이전 디버거가 계속 사용됩니다.이 항목의 단원에서는 각 디버그 엔진에 대한 형식 지정자를 보여 줍니다.
Visual Studio 2012 format specifiers에서는 새로운 디버깅 엔진의 형식 지정자에 대해 설명합니다.
Format specifiers for interop debugging and C++ edit and continue에서는 이전 디버깅 엔진의 형식 지정자에 대해 설명합니다.
목차
Example
Visual Studio 2012 format specifiers
- Size specifiers for pointers as arrays in Visual Studio 2012
Format specifiers for interop debugging and C++ edit and continue
Format specifiers memory locations in interop debugging and C++ edit and continue
Size specifier for pointers as arrays in interop debugging and C++ edit and continue
예제
예를 들어 nVar이 정수 변수이고 조사식 창에서 이 변수의 값이 0x0065로 표시되는 경우,정수 대신 문자로 표현된 값을 보려면 이름 열에서 변수 이름 뒤에 문자 형식 지정자 c를 추가합니다.
이제 값 열에 정수 값 0x0065 대신 문자 값 101 'e'가 표시됩니다.
배열의 요소나 개체의 멤버에 형식 지정자를 적용하려면 각 요소나 멤버에 직접 적용해야 합니다.배열이나 개체에 전체적으로 적용할 수는 없습니다.예를 들어 nArray 배열의 처음 네 요소를 문자 형식으로 보려는 경우,조사식 창에 다음과 같은 식을 입력합니다.
nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c
Visual Studio 2012 형식 지정자
다음 표에는 C++/CLI를 사용하여 interop(네이티브 및 관리) 코드를 디버깅하거나 C++ 편집하며 계속하기를 사용하지 않는 경우 Visual Studio 2012에서 사용할 수 있는 형식 지정자가 나와 있습니다.
굵게 표시된 지정자는 C++/CLI를 사용하는 interop 디버깅 또는 C++ 편집하며 계속하기를 사용하는 디버깅에 대해 지원되지 않습니다.
지정자 |
서식 |
식 |
표시되는 값 |
---|---|---|---|
d |
10진수 정수 |
0xF000F065, d |
-268373915 |
o |
부호 없는 8진수 정수 |
0xF065, o |
0170145 |
x 시간 |
16진수 정수 |
61546, x 61541, h |
0x0000f06a |
X H |
16진수 정수 |
61541, X 61546, H |
0x0000F06A |
c |
단일 문자 |
0x0065, c |
101 'e' |
s |
ASCII 문자열 |
0x0012fde8, s |
"Hello world" |
sb |
ASCII 문자열 |
0x0012fde8, sb |
Hello World |
su |
유니코드 문자열 |
0x0012fde8, su |
L"Hello world" |
sub |
유니코드 문자열 |
0x0012fde8, sub |
Hello World |
s8 |
UTF-8 문자열 |
0x0012fde8, s8 |
"Hello world" |
s8b |
UTF-8 문자열 |
0x0012fde8, s8b |
Hello World |
bstr |
BSTR 문자열 |
0x0032fe8, bstr |
Hi there |
en |
C++ 열거형 형식으로 계산되는 식에서 사용합니다.열거형 상수 이름만 표시하며 숫자 값은 생략합니다. |
enumValue,en |
EnumValue |
, na |
&myGlobal, n winmain, na |
포인터의 주소가 표시되지 않습니다. |
|
nd |
pb,nd |
파생된 클래스는 무시하고 pb의 기본 클래스 정보만 표시합니다. |
|
hr |
HRESULT 또는 Win32 오류 코드.이제 디버거가 자동으로 HRESULT를 디코딩하므로 해당 경우에는 이 지정자가 필요하지 않습니다. |
0x00000000L, hr |
S_OK |
wc |
Window 클래스 플래그 |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Windows 메시지 번호 |
0x0010, wm |
WM_CLOSE |
! |
원시 형식. 모든 데이터 형식 뷰의 사용자 지정을 무시합니다. |
i ! |
4 |
Visual Studio 2012에서 배열로 사용되는 포인터에 대한 크기 지정자
배열로 표시할 개체에 대한 포인터가 있는 경우 다음과 같이 정수 또는 식을 사용하여 배열 요소의 수를 지정할 수 있습니다.
지정자 |
서식 |
식 |
표시되는 값 |
---|---|---|---|
n |
10진수 또는 16진수 정수 |
pBuffer,[32] pBuffer,[0x20] |
pBuffer를 요소가 32개인 배열로 표시합니다. |
[exp] |
정수로 확인되는 유효한 C++ 식입니다. |
pBuffer,[bufferSize] |
bufferSize를 확인하고 pBuffer를 계산된 요소 수의 배열로 표시합니다. |
expand(n) |
pBuffer, expand(1,2) |
pBuffer의 두 번째 자식의 세 번째 자식을 표시합니다. |
C++/CLI를 사용하는 interop 디버깅 또는 C++ 편집하며 계속하기에 대한 형식 지정자
굵게 표시된 지정자는 네이티브 및 C++/CLI 코드에 대한 디버깅 또는 C++ 편집하며 계속하기를 사용하는 디버깅에 대해서만 지원됩니다.
지정자 |
서식 |
식 |
표시되는 값 |
---|---|---|---|
d,i |
부호 있는 10진수 정수 |
0xF000F065, d |
-268373915 |
u |
부호 없는 10진수 정수 |
0x0065, u |
101 |
o |
부호 없는 8진수 정수 |
0xF065, o |
0170145 |
x,X |
16진수 정수 |
61541, x |
0x0000f065 |
l,h |
d, i, u, o, x, X에 대한 long 또는 short 접두사 |
00406042,hx |
0x0c22 |
f |
부호 있는 부동 소수점 |
(3./2.), f |
1.500000 |
e |
부호 있는 과학적 표기법 |
(3./2.), e |
1.500000e+000 |
g |
부호 있는 부동 소수점 또는 부호 있는 과학적 표기법 중에서 짧은 형식 |
(3./2.), g |
1.5 |
c |
단일 문자 |
0x0065, c |
101 'e' |
s |
문자열 |
0x0012fde8, s |
"Hello world" |
su |
유니코드 문자열 |
0x0012fde8, su |
L"Hello world" |
sub |
유니코드 문자열 |
0x0012fde8, sub |
Hello World |
s8 |
UTF-8 문자열 |
0x0012fde8, s8 |
"Hello world" |
hr |
HRESULT 또는 Win32 오류 코드.이제 디버거가 자동으로 HRESULT를 디코딩하므로 해당 경우에는 이 지정자가 필요하지 않습니다. |
0x00000000L, hr |
S_OK |
wc |
Window 클래스 플래그 |
0x00000040, wc |
WC_DEFAULTCHAR |
wm |
Windows 메시지 번호 |
0x0010, wm |
WM_CLOSE |
! |
원시 형식. 모든 데이터 형식 뷰의 사용자 지정을 무시합니다. |
i ! |
4 |
C++/CLI를 사용하는 interop 디버깅 또는 C++ 편집하며 계속하기의 메모리 위치 형식 지정자
다음 표에는 메모리 위치에 사용되는 형식 지정 기호가 포함되어 있습니다.메모리 위치 지정자를 위치로 확인되는 값이나 수식에 사용할 수 있습니다.
기호 |
서식 |
식 |
표시되는 값 |
---|---|---|---|
ma |
ASCII 문자 64개 |
ptr, ma |
0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1 |
분 |
16바이트 16진수 뒤에 ASCII 문자 16개 |
ptr, m |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mb |
16바이트 16진수 뒤에 ASCII 문자 16개 |
ptr, mb |
0x0012ffac B3 34 CB 00 84 30 94 80 FF 22 8A 30 57 26 00 00 .4...0...".0W&.. |
mw |
워드 8개 |
ptr, mw |
0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000 |
md |
더블워드 4개 |
ptr, md |
0x0012ffac 00CB34B3 80943084 308A22FF 00002657 |
mq |
쿼드워드 2개 |
ptr, mq |
0x0012ffac 7ffdf00000000000 5f441a790012fdd4 |
mu |
2바이트 유니코드 문자 |
ptr, mu |
0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000 |
C++/CLI를 사용하는 interop 디버깅 또는 C++ 편집하며 계속하기에서 배열로 사용되는 포인터에 대한 크기 지정자
배열로 표시할 개체에 대한 포인터가 있는 경우 다음과 같이 정수를 사용하여 배열 요소의 수를 지정할 수 있습니다.
지정자 |
서식 |
식 |
표시되는 값 |
---|---|---|---|
n |
10진수 정수 |
pBuffer[32] |
pBuffer를 요소가 32개인 배열로 표시합니다. |