Método ICorProfilerInfo::GetILToNativeMapping
Obtém um mapa de deslocamentos de linguagem intermediária comum (CIL) 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
[em] A ID da função que contém o código.
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 GetILToNativeMapping
método retornar, 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 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 GetILToNativeMapping
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 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 para o valor retornado e pcMap
chamar GetILToNativeMapping
novamente.
Requisitos
Plataformas: Consulte Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: Disponível desde 2.0