次の方法で共有


IDiaSession

デバッグ シンボルのクエリ コンテキストを提供します。

IDiaSession : IUnknown

メソッド

IDiaSession のメソッドを次の表に示します。

メソッド

説明

IDiaSession::get_loadAddress

このシンボル ストア内のシンボルに対応する実行可能ファイルの読み込みアドレスを取得します。 これは、put_loadAddress メソッドに渡された値と同じ値です。

IDiaSession::put_loadAddress

このシンボル ストア内のシンボルに対応する実行可能ファイルの読み込みアドレスを設定します。

注意

IDiaSession オブジェクトを取得して、オブジェクトを使い始める前に、このメソッドを呼び出すことが重要です。

IDiaSession::get_globalScope

グローバル スコープへの参照を取得します。

IDiaSession::getEnumTables

シンボル ストアに格納されているすべてのテーブルの列挙子を取得します。

IDiaSession::getSymbolsByAddr

静的な場所にあるすべての名前付きシンボルの列挙子を取得します。

IDiaSession::findChildren

名前およびシンボル型と一致する、指定された親識別子のすべての子を取得します。

IDiaSession::findSymbolByAddr

指定されたアドレスを含むか、または最も近くにある、指定されたシンボル型を取得します。

IDiaSession::findSymbolByRVA

指定された相対仮想アドレス (RVA) を含むか、または最も近くにある、指定されたシンボル型を取得します。

IDiaSession::findSymbolByVA

指定された仮想アドレス (VA) を含むか、または最も近くにある、指定されたシンボル型を取得します。

IDiaSession::findSymbolByToken

指定されたメタデータ トークンを含むシンボルを取得します。

IDiaSession::symsAreEquiv

2 個のシンボルが同等かどうかをチェックします。

IDiaSession::symbolById

一意の識別子によってシンボルを取得します。

IDiaSession::findSymbolByRVAEx

指定された相対仮想アドレスおよびオフセットを含むか、または最も近くにある、指定されたシンボル型を取得します。

IDiaSession::findSymbolByVAEx

指定された仮想アドレスおよびオフセットを含むか、または最も近くにある、指定されたシンボル型を取得します。

IDiaSession::findFile

コンパイル単位と名前でソース ファイルを取得します。

IDiaSession::findFileById

ソース ファイル識別子でソース ファイルを取得します。

IDiaSession::findLines

指定されたコンパイル単位およびソース ファイル識別子内にある行番号を取得します。

IDiaSession::findLinesByAddr

指定されたアドレスを含む、指定されたコンパイル単位内にある行を取得します。

IDiaSession::findLinesByRVA

指定された相対仮想アドレスを含む、指定されたコンパイル単位内にある行を取得します。

IDiaSession::findLinesByVA

指定されたアドレス範囲に含まれる行の行番号情報を検索します。

IDiaSession::findLinesByLinenum

ソース ファイルおよび行番号で指定されたコンパイル単位内にある行を取得します。

IDiaSession::findInjectedSource

コンパイル プロセスの属性プロバイダーまたはその他のコンポーネントによってシンボル ストアに配置されたソースを取得します。

IDiaSession::getEnumDebugStreams

デバッグ データ ストリームの列挙シーケンスを取得します。

IDiaSession::findInlineFramesByAddr

クライアントが特定のアドレスのインライン フレームすべての反復処理できる列挙型を取得します。

IDiaSession::findInlineFramesByRVA

クライアントが指定した相対仮想アドレス (RVA) のインライン フレームすべての反復処理できる列挙型を取得します。

IDiaSession::findInlineFramesByVA

クライアントが指定された仮想アドレス (VA) のインライン フレームすべての反復処理できる列挙型を取得します。

IDiaSession::findInlineeLines

クライアントが、指定した親シンボルによって、直接または間接的にインライン関数のすべての行番号情報によって、反復処理できる列挙型を取得します。

IDiaSession::findInlineeLinesByAddr

クライアントが、指定した親シンボルによって、直接または間接的に、インライン展開され、指定したアドレスの範囲に含まれるすべての関数の行番号情報を反復処理できる列挙型を取得します。

IDiaSession::findInlineeLinesByRVA

クライアントが、指定した親シンボルによって、直接または間接的に、インライン展開され、指定した相対仮想アドレス (RVA) に含まれるすべての関数の行番号情報を反復処理できる列挙型を取得します。

IDiaSession::findInlineeLinesByVA

クライアントが、指定した親シンボルによって、直接または間接的に、インライン展開され、指定された仮想アドレス (VA) に含まれるすべての関数の行番号情報を反復処理できる列挙型を取得します。

IDiaSession::findInlineeLinesByLinenum

クライアントが指定したソース ファイルと行番号で、直接または間接的に、インライン関数のすべての行番号情報を反復処理できる列挙型を取得します。

IDiaSession::findInlineesByName

クライアントが、指定した名前に一致するすべてのインライン関数の行番号情報を反復処理できる列挙型を取得します。

IDiaSession::findSymbolsForAcceleratorPointerTag

親アクセラレータのスタブ関数でに指定したタグの値は対応する変数のシンボルの列挙体を返します。

IDiaSession::findSymbolsByRVAForAcceleratorPointerTag

対応するタグの値の場合、このメソッドは、指定した相対仮想アドレスの指定した親のアクセラレータのスタブの関数に含まれるシンボルの列挙体を返します。

IDiaSession::findAcceleratorInlineesByName

指定したインライン関数の名前に対応するインライン フレームのシンボルの列挙体を返します。

IDiaSession::findAcceleratorInlineesByLinenum

指定されたソースの場所に対応するインライン フレームのシンボルの列挙体を返します。

解説

IDiaSession オブジェクトを作成した後に put_loadAddress メソッドを呼び出すことが重要です。そして、シンボルの仮想アドレス (VA) プロパティにアクセスできるように、IDiaSession::put_loadAddress メソッドに渡した値はゼロ以外である必要があります。 読み込みアドレスは、デバッグ対象の実行可能ファイルを読み込みんだプログラムから取得されます。 たとえば、実行可能ファイルへのハンドルを指定して、実行可能ファイルの読み込みアドレスを取得するには、Win32 関数 GetModuleInformation を呼び出します。

使用例

この例は、DIA SDK の一般的な初期化の一部として IDiaSession インターフェイスを取得する方法を示しています。

CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;


void InitializeDIA(const char *szFilename)
{
    HRESULT hr = CoCreateInstance( CLSID_DiaSource,
                                   NULL,
                                   CLSCTX_INPROC_SERVER,
                                   __uuidof( IDiaDataSource ),
                                  (void **) &pSource);
    if (FAILED(hr))
    {
        Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
    }
    wchar_t wszFilename[ _MAX_PATH ];
    mbstowcs( wszFilename,
              szFilename,
              sizeof( wszFilename )/sizeof( wszFilename[0] ) );
    if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
    {
        if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
        {
            Fatal( "loadDataFromPdb/Exe" );
        }
    }
    if ( FAILED( pSource->openSession( &psession ) ) )
    {
        Fatal( "openSession" );
    }
}

必要条件

ヘッダー: Dia2.h

ライブラリ: diaguids.lib

DLL: msdia80.dll

参照

処理手順

.Pdb ファイルの照会

関連項目

Exe

IDiaAddressMap

IDiaDataSource

IDiaDataSource::openSession

IDiaSymbol::findChildren

その他の技術情報

インターフェイス (Debug Interface Access SDK)

概要 (Debug Interface Access SDK)