ICorDebug

更新:2007 年 11 月

提供允许开发人员在公共语言运行库 (CLR) 环境中调试应用程序的方法。

说明:

在 Windows 95、Windows 98、Windows ME 或非 x86 平台(例如 IA64 和 AMD64)上,不支持混合模式(托管代码和本机代码)调试。

interface ICorDebug : IUnknown {
        
    HRESULT CanLaunchOrAttach (
        [in] DWORD                         dwProcessId,
        [in] BOOL                          win32DebuggingEnabled
    );
        
    HRESULT CreateProcess (
        [in] LPCWSTR                       lpApplicationName,
        [in] LPWSTR                        lpCommandLine,
        [in] LPSECURITY_ATTRIBUTES         lpProcessAttributes,
        [in] LPSECURITY_ATTRIBUTES         lpThreadAttributes,
        [in] BOOL                          bInheritHandles,
        [in] DWORD                         dwCreationFlags,
        [in] PVOID                         lpEnvironment,
        [in] LPCWSTR                       lpCurrentDirectory,
        [in] LPSTARTUPINFOW                lpStartupInfo,
        [in] LPPROCESS_INFORMATION         pProcessInformation,
        [in] CorDebugCreateProcessFlags    debuggingFlags,
        [out] ICorDebugProcess             **ppProcess
    );
        
    HRESULT DebugActiveProcess (
        [in] DWORD                         id,
        [in] BOOL                          win32Attach,
        [out] ICorDebugProcess             **ppProcess
    );
        
    HRESULT EnumerateProcesses (
        [out] ICorDebugProcessEnum         **ppProcess
    );
        
    HRESULT GetProcess (
                [in] DWORD dwProcessId,
        [out] ICorDebugProcess **ppProcess);

    HRESULT Initialize();
        
    HRESULT SetManagedHandler (
        [in] ICorDebugManagedCallback      *pCallback
    );
        
    HRESULT SetUnmanagedHandler (
        [in] ICorDebugUnmanagedCallback    *pCallback
    );
        
    HRESULT Terminate ();
        
};

方法

方法

说明

ICorDebug::CanLaunchOrAttach 方法

确定是否可以在当前计算机上下文和运行库配置中启动新的进程或附加到给定进程。

ICorDebug::CreateProcess 方法

在调试器的控制下启动进程及其主线程。

ICorDebug::DebugActiveProcess 方法

将调试器附加到现有进程。

ICorDebug::EnumerateProcesses 方法

获取正在调试的进程的枚举数。

ICorDebug::GetProcess 方法

返回具有给定进程 ID 的 ICorDebugProcess 对象。

ICorDebug::Initialize 方法

初始化 ICorDebug 对象。

ICorDebug::SetManagedHandler 方法

指定托管事件的事件处理程序对象。

ICorDebug::SetUnmanagedHandler 方法

为非托管事件指定事件处理程序对象。

ICorDebug::Terminate 方法

终止 ICorDebug 对象。

备注

ICorDebug 表示调试器进程的一个事件处理循环。调试器必须等待,直至收到从要调试的所有进程发出的 ICorDebugManagedCallback::ExitProcess 回调后,才能释放此接口。

ICorDebug 对象是控制所有进一步托管调试的初始对象。在 .NET Framework 1.0 和 1.1 版中,此对象是从 COM 中创建的 CoClass 对象。在 .NET Framework 2.0 版中,此对象不再是 CoClass 对象。它必须由可以更好地识别版本的 CreateDebuggingInterfaceFromVersion 函数创建。这个新的创建函数允许客户端获取 ICorDebug 的特定实现,而此实现还会模拟调试 API 的特定版本。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**CorDebug.idl

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0、1.1、1.0

请参见

其他资源

调试接口