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 cMap
pcMap
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