更新: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 ();
};
方法
方法 |
说明 |
---|---|
确定是否可以在当前计算机上下文和运行库配置中启动新的进程或附加到给定进程。 |
|
在调试器的控制下启动进程及其主线程。 |
|
将调试器附加到现有进程。 |
|
获取正在调试的进程的枚举数。 |
|
返回具有给定进程 ID 的 ICorDebugProcess 对象。 |
|
初始化 ICorDebug 对象。 |
|
指定托管事件的事件处理程序对象。 |
|
为非托管事件指定事件处理程序对象。 |
|
终止 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