Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Fornece métodos para uso por criadores de perfis de código para se comunicar com o common linguagem tempo de execução (CLR) para controlar evento monitoramento e solicitação de informações.
Observação: |
|---|
Cada método na ICorProfilerInfo interface retorna um HRESULT para indicar êxito ou falha. Consulte CorError.h para uma lista de possíveis códigos de retorno. |
interface ICorProfilerInfo : IUnknown
{
HRESULT GetClassFromObject(
[in] ObjectID objectId,
[out] ClassID *pClassId);
HRESULT GetClassFromToken(
[in] ModuleID moduleId,
[in] mdTypeDef typeDef,
[out] ClassID *pClassId);
HRESULT GetCodeInfo(
[in] FunctionID functionId,
[out] LPCBYTE *pStart,
[out] ULONG *pcSize);
HRESULT GetEventMask(
[out] DWORD *pdwEvents);
HRESULT GetFunctionFromIP(
[in] LPCBYTE ip,
[out] FunctionID *pFunctionId);
HRESULT GetFunctionFromToken(
[in] ModuleID moduleId,
[in] mdToken token,
[out] FunctionID *pFunctionId);
HRESULT GetHandleFromThread(
[in] ThreadID threadId,
[out] HANDLE *phThread);
HRESULT GetObjectSize(
[in] ObjectID objectId,
[out] ULONG *pcSize);
HRESULT IsArrayClass(
[in] ClassID classId,
[out] CorElementType *pBaseElemType,
[out] ClassID *pBaseClassId,
[out] ULONG *pcRank);
HRESULT GetThreadInfo(
[in] ThreadID threadId,
[out] DWORD *pdwWin32ThreadId);
HRESULT GetCurrentThreadID(
[out] ThreadID *pThreadId);
HRESULT GetClassIDInfo(
[in] ClassID classId,
[out] ModuleID *pModuleId,
[out] mdTypeDef *pTypeDefToken);
HRESULT GetFunctionInfo(
[in] FunctionID functionId,
[out] ClassID *pClassId,
[out] ModuleID *pModuleId,
[out] mdToken *pToken);
HRESULT SetEventMask(
[in] DWORD dwEvents);
HRESULT SetEnterLeaveFunctionHooks(
[in] FunctionEnter *pFuncEnter,
[in] FunctionLeave *pFuncLeave,
[in] FunctionTailcall *pFuncTailcall);
HRESULT SetFunctionIDMapper(
[in] FunctionIDMapper *pFunc);
HRESULT GetTokenAndMetaDataFromFunction(
[in] FunctionID functionId,
[in] REFIID riid,
[out] IUnknown **ppImport,
[out] mdToken *pToken);
HRESULT GetModuleInfo(
[in] ModuleID moduleId,
[out] LPCBYTE *ppBaseLoadAddress,
[in] ULONG cchName,
[out] ULONG *pcchName,
[out, size_is(cchName), length_is(*pcchName)]
WCHAR szName[] ,
[out] AssemblyID *pAssemblyId);
HRESULT GetModuleMetaData(
[in] ModuleID moduleId,
[in] DWORD dwOpenFlags,
[in] REFIID riid,
[out] IUnknown **ppOut);
HRESULT GetILFunctionBody(
[in] ModuleID moduleId,
[in] mdMethodDef methodId,
[out] LPCBYTE *ppMethodHeader,
[out] ULONG *pcbMethodSize);
HRESULT GetILFunctionBodyAllocator(
[in] ModuleID moduleId,
[out] IMethodMalloc **ppMalloc);
HRESULT SetILFunctionBody(
[in] ModuleID moduleId,
[in] mdMethodDef methodid,
[in] LPCBYTE pbNewILMethodHeader);
HRESULT GetAppDomainInfo(
[in] AppDomainID appDomainId,
[in] ULONG cchName,
[out] ULONG *pcchName,
[out, size_is(cchName), length_is(*pcchName)]
WCHAR szName[] ,
[out] ProcessID *pProcessId);
HRESULT GetAssemblyInfo(
[in] AssemblyID assemblyId,
[in] ULONG cchName,
[out] ULONG *pcchName,
[out, size_is(cchName), length_is(*pcchName)]
WCHAR szName[] ,
[out] AppDomainID *pAppDomainId,
[out] ModuleID *pModuleId);
HRESULT SetFunctionReJIT(
[in] FunctionID functionId);
HRESULT ForceGC();
HRESULT SetILInstrumentedCodeMap(
[in] FunctionID functionId,
[in] BOOL fStartJit,
[in] ULONG cILMapEntries,
[in, size_is(cILMapEntries)] COR_IL_MAP rgILMapEntries[] );
HRESULT GetInprocInspectionInterface(
[out] IUnknown **ppicd);
HRESULT GetInprocInspectionIThisThread(
[out] IUnknown **ppicd);
HRESULT GetThreadContext(
[in] ThreadID threadId,
[out] ContextID *pContextId);
HRESULT BeginInprocDebugging(
[in] BOOL fThisThreadOnly,
[out] DWORD *pdwProfilerContext);
HRESULT EndInprocDebugging(
[in] DWORD dwProfilerContext);
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[]);
}
Métodos
Método |
Descrição |
|---|---|
Inicializa em processo suporte à depuração. Esse método está obsoleto no .NET estrutura versão 2.0. |
|
Desliga no-processo sessão de depuração. Esse método está obsoleto no .NET estrutura versão 2.0. |
|
Força a coleta de lixo em tempo de execução. |
|
Obtém informações sobre o domínio do aplicativo especificado. |
|
Obtém informações sobre o assembly especificado. |
|
Obtém o ClassID de um objeto, dado sua ObjectID. |
|
Obtém o ID da classe, dado o token de metadados. Esse método está obsoleto no .NET estrutura versão 2.0. Use o ICorProfilerInfo2::GetClassFromTokenAndTypeArgs método em vez disso. |
|
Obtém o pai módulo e o token de metadados para a classe especificada. |
|
Obtém a extensão de código nativo associado com a ID da função especificada. Esse método está obsoleto. Use o ICorProfilerInfo2::GetCodeInfo2 método em vez disso. |
|
Obtém o ID do corrente thread, se for um gerenciado thread. |
|
Obtém as categorias de eventos corrente para o qual o criador de perfil deseja receber notificações de eventos do CLR. |
|
Mapeia um ponteiro de instrução do código gerenciado para um FunctionID. |
|
Obtém a ID de uma função. Esse método está obsoleto no .NET estrutura versão 2.0. Use o ICorProfilerInfo2::GetFunctionFromTokenAndTypeArgs método em vez disso. |
|
Obtém a classe pai e metadados token para a função especificada. |
|
Mapeie a ID de um thread para uma alça de thread do Win32. |
|
Obtém um ponteiro para o corpo de um método no código Microsoft intermediate linguagem (MSIL), começando em seu cabeçalho. |
|
Obtém uma interface que fornece um método para alocar memória para ser usado para trocar o corpo de um método no código MSIL. |
|
Obtém um MAP de deslocamentos MSIL para deslocamentos nativo para o código contido na função especificada. |
|
Obtém um objeto que pode ser consultado para um ICorDebugProcess interface. Esse método está obsoleto no .NET estrutura versão 2.0. |
|
Obtém um objeto que pode ser consultado para o ICorDebugThread interface. Esse método está obsoleto no .NET estrutura versão 2.0. |
|
Obtém informações sobre o módulo especificado. |
|
Obtém uma instância da interface de metadados que mapeia para o módulo especificado. |
|
Obtém o dimensionar de um objeto especificado. |
|
Obtém a identidade de contexto associada no momento especificado thread. |
|
Obtém a identidade corrente do thread do Win32 para o segmento especificado. |
|
Obtém o token de metadados e uma instância da interface de metadados que pode ser usada contra o token para a função especificada. |
|
Determina se a classe especificada é uma classe de matriz. |
|
Especifica funções implementado criador de perfil a ser chamado em "entrar", "não" e "tailcall" ganchos de funções gerenciadas. |
|
Define um valor que especifica os tipos de eventos para o qual o criador de perfil deseja receber notificação do CLR. |
|
Especifica a função implementado criador de perfil que será chamada para mapear FunctionID valores a Alternativa valores, que são passados para ganchos de entrada/sair de função o criador de perfil. |
|
Não implementado. Não use. |
|
Substitui o corpo da função especificada no módulo especificado. |
|
Especifica como os deslocamentos de MSIL original da função especificada mapeiam para os novos deslocamentos da MSIL modificado criador de perfil da função. |
Comentários
Um criador de perfil chama um método no ICorProfilerInfo interface para se comunicar com o CLR informações de solicitação e monitoramento de eventos de controle.
Os métodos do ICorProfilerInfo interface são implementados com o CLR usando o modelo de segmentação disponível. Cada método retorna um HRESULT para indicar êxito ou falha. Consulte CorError.h para uma lista de possíveis códigos de retorno.
O CLR passa, por meio de implementação do criador de perfil de ICorProfilerCallback::inicializar, an ICorProfilerInfo interface para cada código criador de perfil durante a inicializar. Um criador de perfil de código, em seguida, pode chamar métodos do ICorProfilerInfo interface para obter informações sobre o código gerenciado que está sendo executado sob o controle do CLR.
Requisitos
Plataformas: See Requisitos de sistema do .NET framework.
Cabeçalho: CorProf.idl
Biblioteca: CorGuids.lib
.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0
Observação: