Compartilhar via


Método ICorProfilerInfo::GetILToNativeMapping

Obtém um mapa de deslocamentos comuns de CIL (linguagem intermediária) 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 [in] A ID da função que contém o código.

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

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

map [out] Uma matriz de COR_DEBUG_IL_TO_NATIVE_MAP estruturas, cada uma das quais especifica os deslocamentos. Depois que o GetILToNativeMapping método for retornado, 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 determinados intervalos de instruções nativas correspondem a regiões especiais de código (por exemplo, o diálogo), uma entrada na matriz pode ter seu ilOffset campo definido como um valor da enumeração CorDebugIlToNativeMappingTypes .

Após GetILToNativeMapping o retorno, 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 com cMap o valor do pcMap parâmetro. Se o pcMap valor, quando for 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 como o valor retornado pcMap e chamar GetILToNativeMapping novamente.

Requirements

Plataformas: confira 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