Partilhar via


Método ICorProfilerInfo::GetILToNativeMapping

Obtém um mapa de deslocamentos de linguagem intermediária comum (CIL) para deslocamentos nativos para o código contido na função especificada.

Sintaxe

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[]);

Parâmetros

functionId [em] A ID da função que contém o código.

cMap [em] O tamanho máximo da map matriz.

pcMap [saídas] O número total de estruturas COR_DEBUG_IL_TO_NATIVE_MAP disponíveis.

map [saídas] Uma matriz de COR_DEBUG_IL_TO_NATIVE_MAP estruturas, cada uma das quais especifica os deslocamentos. Depois que o GetILToNativeMapping método retornar, map conterá algumas ou todas as COR_DEBUG_IL_TO_NATIVE_MAP estruturas.

Observações

O GetILToNativeMapping método retorna uma matriz de COR_DEBUG_IL_TO_NATIVE_MAP estruturas. Para transmitir que certos intervalos de instruções nativas correspondem a regiões especiais de código (por exemplo, o prolog), uma entrada na matriz pode ter seu ilOffset campo definido como um valor da enumeração CorDebugIlToNativeMappingTypes .

Após GetILToNativeMapping os retornos, você deve verificar se o map buffer era grande o suficiente para conter todas as COR_DEBUG_IL_TO_NATIVE_MAP estruturas. Para fazer isso, compare o valor de com o valor do cMappcMap parâmetro. Se o pcMap valor, quando é multiplicado pelo tamanho de uma COR_DEBUG_IL_TO_NATIVE_MAP estrutura, for maior que cMap, aloque um buffer maior map , atualize cMap com o novo tamanho maior e chame GetILToNativeMapping novamente.

Como alternativa, você pode primeiro chamar GetILToNativeMapping com um buffer de comprimento map zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer para o valor retornado e pcMap chamar GetILToNativeMapping novamente.

Requisitos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponível desde 2.0

Consulte também