次の方法で共有


ICorDebug

更新 : 2007 年 11 月

開発者が共通言語ランタイム (CLR: Common Language Runtime) 環境でアプリケーションをデバッグできるようにするメソッドを提供します。

ms230588.alert_note(ja-jp,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 メソッド

指定したプロセス ID の ICorDebugProcess オブジェクトを返します。

ICorDebug::Initialize メソッド

ICorDebug オブジェクトを初期化します。

ICorDebug::SetManagedHandler メソッド

マネージ イベントのイベント ハンドラ オブジェクトを指定します。

ICorDebug::SetUnmanagedHandler メソッド

アンマネージ イベントのイベント ハンドラ オブジェクトを指定します。

ICorDebug::Terminate メソッド

ICorDebug オブジェクトを終了します。

解説

ICorDebug は、デバッガ プロセスのイベント処理ループを表します。デバッガは、このインターフェイスを解放する前に、デバッグ中のすべてのプロセスからの ICorDebugManagedCallback::ExitProcess コールバックを待機する必要があります。

ICorDebug オブジェクトは、それ以降のすべてのマネージ デバッグを制御する初期オブジェクトです。.NET Framework Version 1.0 および 1.1 では、このオブジェクトは COM から作成された CoClass オブジェクトでした。.NET Framework Version 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

参照

その他の技術情報

デバッグのインターフェイス