Поделиться через


Интерфейс ICorDebug

Обновлен: Ноябрь 2007

Предоставляет методы, позволяющие разработчикам отлаживать приложения в среде CLR.

ms230588.alert_note(ru-ru,VS.90).gifПримечание.

Отладка в смешанном режиме (для управляемого и машинного кода) в операционных системах 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

Возвращает объект ICorDebugProcess, с заданным ИД процесса.

Метод ICorDebug::Initialize

Выполняет инициализацию объекта ICorDebug.

Метод ICorDebug::SetManagedHandler

Задает объект обработчика событий для управляемых событий.

Метод ICorDebug::SetUnmanagedHandler

Задает объект обработчика событий для неуправляемых событий.

Метод ICorDebug::Terminate

Завершает выполнение объекта ICorDebug.

Заметки

Интерфейс ICorDebug представляет цикл обработки событий для процесса отладчика. Для разблокирования этого интерфейса отладчик должен дождаться обратного вызова ICorDebugManagedCallback::ExitProcess ото всех отлаживаемых процессов.

Объект ICorDebug является исходным объектом, который будет управлять всеми последующими отладками управляемого кода. В платформе .NET Framework версии 1.0 и 1.1 этот объект был объектом CoClass, созданным на основе модели COM. В платформе .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

См. также

Другие ресурсы

Интерфейсы отладки