다음을 통해 공유


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 함수로 만들어야 합니다. 클라이언트에서는 이 새로운 만들기 함수를 사용하여 특정 버전의 디버깅 API도 에뮬레이트하는 ICorDebug의 특정 구현을 가져올 수 있습니다.

요구 사항

플랫폼:.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

참고 항목

기타 리소스

디버깅 인터페이스