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