次の方法で共有


IDiaDataSource::loadDataForExe

を開き.exe/.dll ファイルに関連付けられているデバッグ データを準備します。

HRESULT loadDataForExe (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback
);

パラメーター

  • 実行可能ファイル
    [入力] .exe ファイルまたは .dll ファイルへのパス。

  • searchPath
    [入力] デバッグ データを検索する代替パス。

  • pCallback
    [入力] IDiaLoadCallbackIDiaLoadCallback2IDiaReadExeAtOffsetCallbackまたは IDiaReadExeAtRVACallback のインターフェイスなどのデバッグのコールバック インターフェイスをサポートするオブジェクトの IUnknown のインターフェイス。

戻り値

正常に終了した場合戻り S_OK; それ以外の場合はエラー コード。 次の表はこのメソッドの使用可能なエラー コードの一部を示しています。

Description

E_PDB_NOT_FOUND

ファイルを開きますいないかファイルに無効な書式指定があります。

E_PDB_FORMAT

旧式の形式のファイルにアクセスしようとしました。

E_PDB_INVALID_SIG

シグネチャが一致しません。

E_PDB_INVALID_AGE

年齢が一致しません。

E_INVALIDARG

無効なパラメーター。

E_UNEXPECTED

データ ソースが既に用意されています。

解説

.exe/.dll ファイル名のデバッグ ヘッダー関連付けられたデバッグ データの位置。

次にこのメソッドはデバッグのヘッダーを読み取りおよびは検索およびデバッグ データを準備します。 検索の進行状況はコールバックによってオプションで報告制御される場合があります。 たとえばIDiaLoadCallback::NotifyDebugDirIDiaDataSource::loadDataForExe のメソッドがデバッグ ディレクトリを探して処理するときです。

IDiaReadExeAtOffsetCallbackIDiaReadExeAtRVACallback のインターフェイスはファイルが標準のファイル I/O に直接アクセスできない場合に実行可能ファイルからのデータの読み込みの代替メソッドを提供するクライアント アプリケーションができます。

検証せずに .pdb ファイルを読み込むにはIDiaDataSource::loadDataFromPdb のメソッドを使用します。

特定の条件に対して .pdb ファイルを検証するにはIDiaDataSource::loadAndValidateDataFromPdb のメソッドを使用します。

メモリの .pdb ファイルを直接読み込むにはIDiaDataSource::loadDataFromIStream のメソッドを使用します。

使用例

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
    // Report error
}

参照

関連項目

IDiaDataSource

IDiaLoadCallback

IDiaLoadCallback2

IDiaLoadCallback::NotifyDebugDir

IDiaReadExeAtOffsetCallback

IDiaReadExeAtRVACallback

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadAndValidateDataFromPdb

IDiaDataSource::loadDataFromIStream