다음을 통해 공유


C++의 형식 지정자

조사식 창 또는 간략한 조사식 대화 상자에서 네이티브 코드를 디버깅할 때 형식 지정자를 사용하여 값이 표시되는 형식을 변경할 수 있습니다.

대부분의 형식 지정자는 네이티브 코드에만 사용되지만 Visual C#에는 제한된 형식 지정자 집합이 있습니다. C#의 형식 지정자를 참조하십시오.

또한 직접 실행 창, 명령 창 및 소스 창에서도 형식 지정자를 사용할 수 있습니다. 이러한 창에서 식을 일시 중지하면 결과가 DataTip에 나타납니다. DataTip 보기에는 형식 지정자에 맞는 DataTip이 표시됩니다.

참고

Visual Studio 네이티브 디버거가 새로운 디버깅 엔진으로 전환되었습니다.이 변경에 따라 몇 가지 새로운 형식 지정자가 추가되고 일부 기존 형식 지정자가 제거되었습니다.아직 전환이 완료되지 않았으며, C++/CLI를 사용하여 interop(혼합 네이티브 및 관리) 디버깅을 수행할 때와 C++ 편집하며 계속하기를 사용하여 디버깅할 때 이전 디버거가 계속 사용됩니다.이 항목의 단원에서는 각 디버그 엔진에 대한 형식 지정자를 보여 줍니다.

  • Visual Studio 2012 형식 지정자에서는 새로운 디버깅 엔진의 형식 지정자에 대해 설명합니다.

  • interop 디버깅 및 C++ 편집하며 계속하기에 대한 형식 지정자에서는 이전 디버깅 엔진의 형식 지정자에 대해 설명합니다.

콘텐츠

예제

Visual Studio 2012 형식 지정자

  • Visual Studio 2012에서 배열로 사용되는 포인터에 대한 크기 지정자

interop 디버깅 및 C++ 편집하며 계속하기에 대한 형식 지정자

  • interop 디버깅 및 C++ 편집하며 계속하기의 메모리 위치 형식 지정자

  • interop 디버깅 및 C++ 편집하며 계속하기에서 배열로 사용되는 포인터에 대한 크기 지정자

예제

예를 들어 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

h

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

, 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

String

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

m

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개인 배열로 표시합니다.