IDiaSession
デバッグ シンボルのクエリ コンテキストを提供します。
構文
IDiaSession : IUnknown
メソッド
次の表に、IDiaSession
のメソッドを示します。
メソッド | 説明 |
---|---|
IDiaSession::get_loadAddress |
このシンボル ストアのシンボルに対応する実行可能ファイルの読み込みアドレスを取得します。 これは、put_loadAddress メソッドに渡された値と同じです。 |
IDiaSession::put_loadAddress |
このシンボル ストアのシンボルに対応する実行可能ファイルの読み込みアドレスを設定します。 注: このメソッドは、IDiaSession オブジェクトの取得時およびオブジェクトの使用を開始する前に呼び出すことが重要です。 |
IDiaSession::get_globalScope |
グローバル スコープへの参照を取得します。 |
IDiaSession::getEnumTables |
シンボル ストアに含まれる全テーブルの列挙子を取得します。 |
IDiaSession::getSymbolsByAddr |
静的な場所にあるすべての名前付きシンボルの列挙子を取得します。 |
IDiaSession::findChildren |
指定された親識別子の子で、名前とシンボルの種類に一致するものをすべて取得します。 |
IDiaSession::findChildrenEx |
名前とシンボルの種類に一致する、指定された親識別子のすべての子 (最適化されたローカルを含む) を取得します。 |
IDiaSession::findChildrenExByAddr |
指定したアドレスを含む、または最も近い、最適化されたローカルを含む、名前とシンボルの種類に一致する、指定された親識別子のすべての子を取得します。 |
IDiaSession::findChildrenExByVA |
指定した仮想アドレス (VA) を含む、または最も近い、最適化されたローカルを含む、名前とシンボルの種類に一致する、指定された親識別子のすべての子を取得します。 |
IDiaSession::findChildrenExByRVA |
指定した相対仮想アドレス (RVA) を含む、または最も近い、最適化されたローカルを含む、名前とシンボルの種類に一致する、指定された親識別子のすべての子を取得します。 |
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::findAcceleratorInlineesByLinenum |
指定したソースの場所に対応するインライン フレームのシンボルの列挙子を返します。 |
IDiaSession::findSymbolsForAcceleratorPointerTag |
親アクセラレータ スタブ関数で指定のタグ値が対応する変数のシンボルの列挙型を返します。 |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
対応するタグ値を指定すると、このメソッドは、指定された相対仮想アドレスにある指定された親アクセラレータ スタブ関数に含まれているシンボルの列挙を返します。 |
IDiaSession::findAcceleratorInlineesByName |
指定されたインライン関数名に対応するインライン フレームのシンボルの列挙を返します。 |
IDiaSession::addressForVA |
指定した仮想アドレス (VA) の同等のアドレスを返します。 |
IDiaSession::addressForRVA |
指定した相対仮想アドレス (RVA) の同等のアドレスを返します。 |
IDiaSession::findILOffsetsByAddr |
クライアントが指定したアドレス範囲内の MSIL オフセットを反復処理できるようにする列挙体を取得します。 |
IDiaSession::findILOffsetsByRVA |
クライアントが指定された相対仮想アドレス (RVA) 範囲内の MSIL オフセットを反復処理できるようにする列挙体を取得します。 |
IDiaSession::findILOffsetsByVA |
クライアントが指定された仮想アドレス (VA) 範囲内の MSIL オフセットを反復処理できるようにする列挙体を取得します。 |
IDiaSession::findInputAssemblyFiles |
クライアントが.NET ネイティブ入力アセンブリ ファイルを反復処理できるようにする列挙体を取得します。 |
IDiaSession::findInputAssembly |
インデックスによって.NET ネイティブ入力アセンブリ ファイルを取得します。 |
IDiaSession::findInputAssemblyById |
入力アセンブリ ファイル.NET ネイティブ一意識別子で取得します。 |
IDiaSession::getFuncMDTokenMapSize |
.NET ネイティブメタデータ関数トークン マップのサイズをバイト単位で取得します。 |
IDiaSession::getFuncMDTokenMap |
.NET ネイティブメタデータ関数トークン マップの内容を取得します。 |
IDiaSession::getTypeMDTokenMapSize |
.NET ネイティブ メタデータ型トークン マップのサイズをバイト単位で取得します。 |
IDiaSession::getTypeMDTokenMap |
.NET ネイティブ メタデータ型トークン マップの内容を取得します。 |
IDiaSession::getNumberOfFunctionFragments_VA |
指定された仮想アドレス (VA) にある関数の連続しないフラグメントの数を取得します。 |
IDiaSession::getNumberOfFunctionFragments_RVA |
指定された相対仮想アドレス (RVA) にある関数の連続しないフラグメントの数を取得します。 |
IDiaSession::getFunctionFragments_VA |
指定された仮想アドレス (VA) にある関数の連続しないフラグメントのアドレスと長さを取得します。 |
IDiaSession::getFunctionFragments_RVA |
指定された相対仮想アドレス (RVA) にある関数の連続しないフラグメントのアドレスと長さを取得します。 |
IDiaSession::getExports |
エクスポートされたすべてのシンボルの列挙子を取得します。 |
IDiaSession::getHeapAllocationSites |
すべての SymTagHeapAllocationSite シンボルの列挙子を取得します。 |
IDiaSession::findInputAssemblyFile |
指定したシンボルの親である.NET ネイティブ入力アセンブリ ファイルを取得します。 |
解説
シンボルの仮想アドレス (VA) プロパティにアクセスできるようにするには、IDiaSession
オブジェクトを作成した後に IDiaSession::put_loadAddress
メソッドを呼び出すことが重要です。また、put_loadAddress
メソッドに渡される値は 0 以外である必要があります。 読み込みアドレスは、デバッグ対象の実行可能ファイルが読み込まれたプログラムから取得されます。 たとえば、実行可能ファイルへのハンドルを指定すると、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