Partilhar via


Método de ICorProfilerInfo::GetILToNativeMapping

Obtém um mapa da Microsoft intermediate language (MSIL) desloca para deslocamentos nativos para o código contido na função especificada.

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 identificação da função que contém o código.

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

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

  • map
    [out] Uma matriz de COR_DEBUG_IL_TO_NATIVE_MAP estruturas, cada qual especifica a deslocamentos. Após a GetILToNativeMapping método retorna, map irá conter algumas ou todas as COR_DEBUG_IL_TO_NATIVE_MAP estruturas.

Comentários

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 às regiões especiais de código (por exemplo, o prólogo), uma entrada na matriz pode ter sua ilOffset campo definido como um valor a CorDebugIlToNativeMappingTypes enumeração.

Depois de GetILToNativeMapping retorna, você deve verificar se a map buffer era grande o suficiente para conter todos os COR_DEBUG_IL_TO_NATIVE_MAP estruturas. Para fazer isso, compare o valor de cMap com o valor de pcMap parâmetro. Se a pcMap valor, quando ele é multiplicado pelo tamanho de um COR_DEBUG_IL_TO_NATIVE_MAP estrutura, é maior do que cMap, alocar uma maior map buffer, a atualização cMap com o novo tamanho maior e a chamada GetILToNativeMapping novamente.

Como alternativa, você pode primeiro chamar GetILToNativeMapping com um comprimento zero map o buffer para obter o tamanho de buffer correto. Além disso, você pode então definir o tamanho do buffer para o valor retornado em pcMap e chame GetILToNativeMapping novamente.

Para obter mais informações sobre essas duas abordagens, consulte Buffers de Caller-Allocated.

Requisitos

Plataformas: Consulte Requisitos de sistema do .NET Framework.

Cabeçalho: Corprof. idl, CorProf.h

Biblioteca: CorGuids.lib

.NET Framework versões: 4, 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface de ICorProfilerInfo

Outros recursos

Interfaces de criação de perfil

A criação de perfil (referência de API não gerenciada)