Método ICorProfilerInfo4::GetCodeInfo3
Obtém as extensões do código nativo associado à versão recompilada por JIT da função especificada.
Sintaxe
HRESULT GetCodeInfo3(
[in] FunctionID functionID,
[in] ReJITID reJitId,
[in] ULONG32 cCodeInfos,
[out] ULONG32 *pcCodeInfos,
[out, size_is(cCodeInfos), length_is(*pcCodeInfos)]
COR_PRF_CODE_INFO codeInfos[]);
Parâmetros
functionID
[in] A ID da função com a qual o código nativo está associado.
reJitId
[in] A identidade da função recompilada por JIT.
cCodeInfos
[in] O tamanho da matriz codeInfos
.
pcCodeInfos
[out] Um ponteiro para o número total de estruturas de COR_PRF_CODE_INFO disponíveis.
codeInfos
[out] Um buffer fornecido pelo chamador. Depois que o método é retornado, ele contém uma matriz de estruturas COR_PRF_CODE_INFO
cada uma delas descreve um bloco de código nativo.
Comentários
O método GetCodeInfo3
é semelhante ao GetCodeInfo2, exceto que ele obterá a ID recompilada por JIT da função que contém o endereço IP especificado.
Observação
GetCodeInfo3
pode disparar uma coleta de lixo, enquanto GetCodeInfo2 não pode. Para obter mais informações, consulte o CORPROF_E_UNSUPPORTED_CALL_SEQUENCE HRESULT.
As extensões são classificadas para aumentar o deslocamento da CIL (Common Intermediate Language).
Após o retorno de GetCodeInfo3
, você deve verificar se o buffer codeInfos
era grande o suficiente para conter todas as estruturas COR_PRF_CODE_INFO. Para fazer isso, compare o valor de cCodeInfos
com o valor do parâmetro cchName
. Se cCodeInfos
dividido pelo tamanho de uma estrutura COR_PRF_CODE_INFO for menor do que pcCodeInfos
, aloque um buffer codeInfos
maior, atualize cCodeInfos
com o novo tamanho maior e chame GetCodeInfo3
novamente.
Como alternativa, primeiro você pode chamar GetCodeInfo3
com um buffer codeInfos
de comprimento zero para obter o tamanho correto do buffer. Em seguida, você pode definir o tamanho do buffer codeInfos
para o valor retornado em pcCodeInfos
, multiplicado pelo tamanho de uma estrutura COR_PRF_CODE_INFO e chamar GetCodeInfo3
novamente.
Requisitos
Plataformas: confira Requisitos do sistema.
Cabeçalho: CorProf.idl, CorProf.h
Biblioteca: CorGuids.lib
Versões do .NET Framework: disponíveis desde 4.5