Condividi tramite


Metodo ICorProfilerInfo::GetILToNativeMapping

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

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 matrice map.

  • pcMap
    [out] Numero complessivo di strutture COR_DEBUG_IL_TO_NATIVE_MAP disponibili.

  • map
    [out] Matrice di strutture COR_DEBUG_IL_TO_NATIVE_MAP, 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.

Note

Il metodo GetILToNativeMapping restituisce una matrice di strutture COR_DEBUG_IL_TO_NATIVE_MAP. Per indicare che alcuni intervalli di istruzioni native corrispondono ad aree speciali del codice, ad esempio il prologo, una voce nella matrice può avere il campo ilOffset impostato su un valore dell'enumerazione CorDebugIlToNativeMappingTypes.

Dopo il completamento del metodo GetILToNativeMapping, è necessario verificare se il buffer map fosse abbastanza grande per contenere tutte le strutture COR_DEBUG_IL_TO_NATIVE_MAP. A tal fine, 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 maggiore e chiamare nuovamente GetILToNativeMapping.

In alternativa, è possibile chiamare dapprima il metodo GetILToNativeMapping con un buffer map di lunghezza zero per ottenere la dimensione del buffer corretta. È quindi possibile impostare la dimensione del buffer sul valore restituito nel parametro pcMap e chiamare nuovamente il metodo GetILToNativeMapping.

Per ulteriori informazioni su questi due approcci, vedere Buffer allocati dal chiamante.

Requisiti

Piattaforme: vedere Requisiti di sistema di .NET Framework.

Intestazione: CorProf.idl, CorProf.h

Libreria: CorGuids.lib

Versioni di .NET Framework: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vedere anche

Riferimenti

Interfaccia ICorProfilerInfo

Altre risorse

Interfacce di profilatura

Profilatura (riferimenti alle API non gestite)