Partilhar via


Método ICorProfilerInfo4::GetILToNativeMapping2

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

Sintaxe

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

Parâmetros

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

pReJitId [em] A identidade da função JIT-recompilada. A identidade deve ser zero no .NET Framework 4.5.

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 GetILToNativeMapping2 método retornar, map conterá algumas ou todas as COR_DEBUG_IL_TO_NATIVE_MAP estruturas.

Observações

GetILToNativeMapping2 é semelhante ao método ICorProfilerInfo::GetILToNativeMapping , exceto que ele permitirá que o criador de perfil especifique a ID da função recompilada em versões futuras.

Nota

O método ICorProfilerFunctionControl::SetILInstrumentedCodeMap não é implementado no .NET Framework 4.5, portanto, as funções que foram recompiladas por JIT não podem ter um mapeamento IL-para-nativo que difere da função originalmente compilada. Como tal, GetILToNativeMapping2 não pode ser chamado com uma ID recompilada JIT diferente de zero no .NET Framework 4.5.

O GetILToNativeMapping2 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 GetILToNativeMapping2 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 GetILToNativeMapping2 novamente.

Como alternativa, você pode primeiro chamar GetILToNativeMapping2 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 GetILToNativeMapping2 novamente.

Requisitos

Plataformas: Consulte Requisitos do sistema.

Cabeçalho: CorProf.idl, CorProf.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponível desde a versão 4.5

Consulte também