Condividi tramite


Metodo ICorProfilerInfo4::GetILToNativeMapping2

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

Sintassi

HRESULT GetILToNativeMapping2(
    [in] FunctionID functionId,
    [in] ReJITID reJitId,
    [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.

pReJitId [in] Identità della funzione ricompilata JIT. L'identità deve essere zero in .NET Framework 4.5.

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 GetILToNativeMapping2, map conterrà alcune o tutte le strutture COR_DEBUG_IL_TO_NATIVE_MAP.

Osservazioni:

GetILToNativeMapping2 è simile al metodo ICorProfilerInfo::GetILToNativeMapping , con la differenza che consentirà al profiler di specificare l'ID della funzione ricompilata nelle versioni future.

Nota

Il metodo ICorProfilerFunctionControl::SetILInstrumentedCodeMap non è implementato in .NET Framework 4.5, pertanto le funzioni che sono state ricompilate JIT non possono avere un mapping il-to-native diverso dalla funzione compilata originariamente. Di conseguenza, GetILToNativeMapping2 non può essere chiamato con un ID ricompilato JIT diverso da zero in .NET Framework 4.5.

Il metodo GetILToNativeMapping2 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 GetILToNativeMapping2, è 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 GetILToNativeMapping2.

In alternativa, è possibile chiamare innanzitutto GetILToNativeMapping2 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 GetILToNativeMapping2.

Requisiti

Piattaforme: vedere Requisiti di sistema.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: disponibili dalla versione 4.5

Vedi anche