Metodo ICorProfilerInfo::GetILToNativeMapping

Ottiene una mappa dagli offset CIL (Common Intermediate Language) agli offset nativi per il codice contenuto nella funzione specificata.

Sintassi

HRESULT GetILToNativeMapping(
    [in] FunctionID functionId,
    [in] ULONG32 cMap,
    [out] ULONG32 *pcMap,
    [out, size_is(cMap), length_is(*pcMap)]
        COR_DEBUG_IL_TO_NATIVE_MAP map[]);

Parametri

functionId [in] ID della funzione che contiene il codice.

cMap [in] Dimensione massima della map matrice.

pcMap [out] Numero totale di strutture COR_DEBUG_IL_TO_NATIVE_MAP disponibili.

map [out] Matrice di COR_DEBUG_IL_TO_NATIVE_MAP strutture, ognuna delle quali specifica gli offset. Dopo il completamento del metodo GetILToNativeMapping, map conterrà alcune o tutte le strutture COR_DEBUG_IL_TO_NATIVE_MAP.

Osservazioni:

Il metodo GetILToNativeMapping restituisce una matrice di strutture COR_DEBUG_IL_TO_NATIVE_MAP. Per indicare che determinati intervalli di istruzioni native corrispondono a aree speciali di codice (ad esempio, il prologo), una voce nella matrice può impostare il relativo ilOffset campo su un valore dell'enumerazione CorDebugIlToNativeMappingTypes .

Dopo il completamento del metodo GetILToNativeMapping, è necessario verificare che il buffer map sia abbastanza grande per contenere tutte le strutture COR_DEBUG_IL_TO_NATIVE_MAP. A tale scopo, confrontare il valore di cMap con il valore del parametro pcMap. Se il valore pcMap, moltiplicato per la dimensione di una struttura COR_DEBUG_IL_TO_NATIVE_MAP, è superiore a cMap, allocare un buffer map più grande, aggiornare cMap con la nuova dimensione e chiamare nuovamente GetILToNativeMapping.

In alternativa, è possibile chiamare innanzitutto GetILToNativeMapping con un buffer map di lunghezza zero per ottenere le dimensioni del buffer corrette. È quindi possibile impostare le dimensioni del buffer sul valore restituito nel parametro pcMap e chiamare nuovamente GetILToNativeMapping.

Requisiti

Piattaforme: vedere Requisiti di sistema.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: disponibili dalla versione 2.0

Vedi anche