IDiaDataSource::loadDataForExe
.exe または .dll ファイルを開き、ファイルに関連付けられているデバッグ データを準備します。
構文
HRESULT loadDataForExe (
LPCOLESTR executable,
LPCOLESTR searchPath,
IUnknown* pCallback
);
パラメーター
executable
[入力] .exe または .dll ファイルへのパス。
searchPath
[入力] デバッグ データを検索するための代替パス。
pCallback
[入力] IDiaLoadCallback、IDiaLoadCallback2、IDiaReadExeAtOffsetCallback、IDiaReadExeAtRVACallback インターフェイスなど、デバッグ コールバック インターフェイスをサポートするオブジェクトの IUnknown
インターフェイス。
戻り値
成功した場合は、S_OK
を返します。それ以外の場合は、エラー コードを返します。 次の表に、このメソッドで発生する可能性のあるエラー コードの一部を示します。
値 | 説明 |
---|---|
E_PDB_NOT_FOUND | ファイルを開くことができなかったか、ファイルの形式が無効です。 |
E_PDB_FORMAT | 古い形式のファイルにアクセスしようとしました。 |
E_PDB_INVALID_SIG | シグネチャが一致しません。 |
E_PDB_INVALID_AGE | 経過期間が一致しません。 |
E_INVALIDARG | 無効なパラメーター。 |
E_UNEXPECTED | データ ソースは既に準備されています。 |
解説
.exe/.dll ファイルのデバッグ ヘッダーには、関連付けられているデバッグ データの場所が指定されています。
シンボル サーバーからデバッグ データを読み込む場合、 symsrv.dll は、ユーザーのアプリケーションまたは msdia140.dll がインストールされているのと同じディレクトリに存在するか、システム ディレクトリに存在する必要があります。
このメソッドは、デバッグ ヘッダーを読み取り、デバッグ データを検索して準備します。 必要に応じて、コールバックを使用して、検索の進行状況をレポートおよび制御できます。 たとえば、IDiaLoadCallback::NotifyDebugDir は、IDiaDataSource::loadDataForExe
メソッドがデバッグ ディレクトリを見つけて処理するときに呼び出されます。
IDiaReadExeAtOffsetCallback および IDiaReadExeAtRVACallback インターフェイスを使用すると、クライアント アプリケーションは、標準のファイル 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
}
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示