Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Obtém um mapa de deslocamentos comuns de CIL (linguagem intermediária) 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 [in] A ID da função que contém o código.
pReJitId [in] A identidade da função recompilada por JIT. A identidade deve ser zero no .NET Framework 4.5.
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 GetILToNativeMapping2 método for retornado, 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.
Observação
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-to-native diferente da função originalmente compilada. Dessa forma, GetILToNativeMapping2 não é possível chamar com uma ID recompilada por JIT não zero no .NET Framework 4.5.
O GetILToNativeMapping2 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 GetILToNativeMapping2 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 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 como o valor retornado pcMap e chamar GetILToNativeMapping2 novamente.
Requirements
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: Disponível desde 4.5