Condividi tramite


Identificatori di formato in C++

Quando si esegue il debug di codice nativo nella finestraEspressioni di controllo o nella finestra di dialogo Controllo immediato, è possibile modificare il formato di visualizzazione di un valore tramite gli identificatori di formato.

La maggior parte degli identificatori di formato sono destinati solo al codice nativo, benché Visual C# ne fornisca un insieme limitato.Vedere Identificatori di formato in C#).

È inoltre possibile utilizzare gli identificatori di formato nella finestra di controllo immediato, la finestra di comando e persino nelle finestre di origine.Se si posiziona su un'espressione nelle finestre, il risultato verrà visualizzato in un suggerimento dati.I suggerimenti dati riflettono l'identificatore di formato nella visualizzazione Suggerimento dati.

[!NOTA]

Visual Studio 2012 debugger nativi opportuno quindi fornire a un nuovo modulo di gestione di debug.È inclusa in questa modifica l'aggiunta di nuovi identificatori di formato e la rimozione di alcuni obsoleti.La transizione non è completa e il debugger più recente viene utilizzato quando si (misto nativo e gestito il debug di interoperabilità e quando si esegue il debug con modifica C++ e continuare.Le sezioni in questo argomento vengono illustrati gli identificatori di formato per ogni modulo di debug.

  • Visual Studio 2012 format specifiers descritti gli identificatori di formato in nuovo modulo di gestione di debug.

  • Format specifiers for interop debugging and C++ edit and continue descritti gli identificatori di formato nel modulo di gestione di debug più recente.

In questo argomento

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

Esempio

Si supponga che nVar sia una variabile integer e che nella finestra Espressioni di controllo sia indicato che contiene il valore 0x0065.Per visualizzare il valore espresso come carattere anziché come Integer, nella colonna Nome, dopo il nome di variabile, aggiungere l'identificatore di formato carattere, c:

Nella colonna Valore verrà visualizzato il valore di carattere 101 'e', anziché l'Integer 0x0065.

Per applicare un identificatore di formato agli elementi di una matrice o ai membri di un oggetto, è necessario applicarlo direttamente a ciascun elemento o membro.Non è possibile applicarlo all'intera matrice o all'intero oggettoSi supponga, ad esempio, di disporre di una matrice nArray e di voler visualizzare i primi quattro elementi nel formato carattere.Le espressioni verrebbero immesse nella finestra Espressioni di controllo:

nArray[0],c
nArray[1],c
nArray[2],c
nArray[3],c

Visual Studio 2012 identificatori di formato

Le tabelle seguenti indicano gli identificatori di formato utilizzabile in Visual Studio 2012 al codice di interoperabilità di debug non (C++ e gestito misto) o la modifica di C++ e continuare.

Gli identificatori in grassetto sono non di supporto per il debug di interoperabilità o debug alla modifica di C++ e continuazione.

Identificatore

Format

Espressione

Valore visualizzato

d

Integer decimale

0xF000F065, d

-268373915

o

Integer ottale unsigned

0xF065, o

0170145

x

h

Integer esadecimale

61546, x

61541, h

0x0000f06a

X

H

Integer esadecimale

X 61541,

61546, H

0x0000F06A

c

Carattere singolo

0x0065, c

101 'e'

s

String

0x0012fde8, s

"Hello world"

su

Stringa Unicode

0x0012fde8, su

"Hello world"

s8

Stringa UTF-8

0x0012fde8, s8

"Hello world"

s8b

Stringa UTF-8

0x0012fde8, s8b

Hello world

BSTR

Stringa BSTR

0x0032fe8, BSTR

Esistono hello

ND

Pb, ND

Visualizza solo le informazioni della classe base di Pb, trascuranti le classi derivate

hr

HRESULT o codice di errore Win32.Poiché il debugger decodifica gli HRESULT automaticamente, in questi casi tale identificatore non è necessario.

0x00000000L, hr

S_OK

wc

Flag di classe Windows

0x00000040, wc

WC_DEFAULTCHAR

wm

Numeri di messaggio Windows

0x0010, wm

WM_CLOSE

!

formato non elaborato, in cui vengono ignorate le personalizzazioni delle visualizzazioni dei tipi di dati

i !

4

75w45ekt.collapse_all(it-it,VS.110).gifRidimensionare gli identificatori per i puntatori come matrici in Visual Studio 2012

Se si dispone di un puntatore a un oggetto da visualizzare come matrice, è possibile utilizzare un Integer o un'espressione per specificare il numero di elementi di matrice:

Identificatore

Format

Espressione

Valore visualizzato

n

Numero decimale o Integer esadecimale

pBuffer [32]

pBuffer 0x20 []

PBuffer delle visualizzazioni come matrice di 32 elementi.

[esp]

Un'espressione valida C++ che restituisce un numero intero.

pBuffer [] bufferSize

Evaluates bufferSize e visualizzare il pBuffer come una matrice valutato il numero di elementi.

espandere (n)

il pBuffer, espandere (1,2)

Visualizzare il terzo elemento figlio del secondo elemento figlio di pBuffer

Gli identificatori di formato per il debug di interoperabilità e C++ modifica e continuazione

Gli identificatori in grassetto sono supportati solo per il debug di interoperabilità e debug con la modifica C++ e continuazione.

Identificatore

Format

Espressione

Valore visualizzato

d,i

Integer decimale signed

0xF000F065, d

-268373915

u

Integer decimale unsigned

0x0065, u

101

o

Integer ottale unsigned

0xF065, o

0170145

x,X

Integer esadecimale

61541, x

0x0000f065

l,h

Prefisso long o short per: d, i, u, o, x, X

00406042,hx

0x0c22

f

Virgola mobile signed

(3./2.), f

1.500000

e

Notazione scientifica signed

(3./2.), e

1.500000e+000

g

Virgola mobile signed o notazione scientifica signed (a seconda di quale sia più breve)

(3./2.), g

1.5

c

Carattere singolo

0x0065, c

101 'e'

s

String

0x0012fde8, s

"Hello world"

su

Stringa Unicode

0x0012fde8, su

"Hello world"

s8

Stringa UTF-8

0x0012fde8, s8

"Hello world"

hr

HRESULT o codice di errore Win32.Poiché il debugger decodifica gli HRESULT automaticamente, in questi casi tale identificatore non è necessario.

0x00000000L, hr

S_OK

wc

Flag di classe Windows

0x00000040, wc

WC_DEFAULTCHAR

wm

Numeri di messaggio Windows

0x0010, wm

WM_CLOSE

!

formato non elaborato, in cui vengono ignorate le personalizzazioni delle visualizzazioni dei tipi di dati

i !

4

75w45ekt.collapse_all(it-it,VS.110).gifLe posizioni di memoria gli identificatori di formato il debug di interoperabilità e C++ modifica e continuazione

Nella tabella che segue sono elencati i simboli di formattazione utilizzati per le posizioni di memoria.Gli identificatori della posizione di memoria possono essere utilizzati con qualsiasi valore o espressione che restituisca una posizione.

Simbolo

Format

Espressione

Valore visualizzato

ma

64 caratteri ASCII

ptr, ma

0x0012ffac .4...0...".0W&.......1W&.0.:W..1...."..1.JO&.1.2.."..1...0y....1

m

16 byte in formato esadecimale, seguiti da 16 caratteri 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 byte in formato esadecimale, seguiti da 16 caratteri 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 parole

ptr, mw

0x0012ffac 34B3 00CB 3084 8094 22FF 308A 2657 0000

md

4 parole doppie

ptr, md

0x0012ffac 00CB34B3 80943084 308A22FF 00002657

mq

2 parole quadruple

ptr, mq

0x0012ffac 7ffdf00000000000 5f441a790012fdd4

mu

Caratteri da 2 byte (Unicode)

ptr, mu

0x0012fc60 8478 77f4 ffff ffff 0000 0000 0000 0000

75w45ekt.collapse_all(it-it,VS.110).gifIdentificatore di dimensioni per i puntatori come matrici del debug di interoperabilità e C++ modifica e continuazione

Se si dispone di un puntatore a un oggetto che si desidera visualizzare come matrice, è possibile utilizzare un Integer per specificare il numero di elementi di matrice:

Identificatore

Format

Espressione

Valore visualizzato

n

Integer decimale

pBuffer [32]

PBuffer delle visualizzazioni come matrice di 32 elementi.