次の方法で共有


IDiaDataSource::loadAndValidateDataFromPdb

開きプログラム データベース (.pdb) ファイルが提供されている定義の情報と一致することを確認しデバッグ データ ソースとして .pdb ファイルを準備します。

HRESULT loadAndValidateDataFromPdb ( 
   LPCOLESTR pdbPath,
   GUID*     pcsig70,
   DWORD     sig,
   DWORD     age
);

パラメーター

  • pdbPath
    [入力] .pdb ファイルへのパス。

  • pcsig70
    [入力] .pdb ファイルの定義に対して検証する GUID の定義。 Visual C++ の .pdb ファイルは後で GUID の定義があります。

  • sig
    [入力] .pdb ファイルの定義に対して検証する 32 ビットの定義。

  • age
    [入力] 検証する値を期日を経過してください。 期間は既知の時刻値必ずしも使用して.pdb ファイルが対応する .exe ファイルと同期するかどうかを確認するために対応しません。

戻り値

正常に終了した場合戻り S_OK; それ以外の場合はエラー コード。 次の表はこのメソッドの有効な戻り値を示します。

Description

E_PDB_NOT_FOUND

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

E_PDB_FORMAT

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

E_PDB_INVALID_SIG

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

E_PDB_INVALID_AGE

年齢が一致しません。

E_INVALIDARG

無効なパラメーター。

E_UNEXPECTED

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

解説

.pdb ファイルは定義と時間の値の両方が含まれます。 これらの値は.pdb ファイルを検索する .dll ファイルまたは .exe にレプリケートされます。 データ ソースを準備する前にこのメソッドはという名前の .pdb ファイルの定義と期間が指定された値と一致することを確認します。

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

データの読み込みプロセスにアクセスするにはコールバック機構を通じてIDiaDataSource::loadDataForExe のメソッドを使用します。

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

使用例

IDiaDataSource* pSource;  // Previously created data source.
DEFINE_GUID(expectedGUIDSignature,0x1234,0x5678,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08);
DWORD expectedFileSignature = 0x12345678;
DWORD expectedAge           = 128;

HRESULT hr;
hr = pSource->loadAndValidateDataFromPdb( L"yprog.pdb",
                                          &expectedGUIDSignature,
                                          expectedFileSignature,
                                          expectedAge);
if (FAILED(hr))
{
    // Report an error
}

参照

関連項目

IDiaDataSource

IDiaDataSource::loadDataForExe

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadDataFromIStream