Bagikan melalui


IDiaDataSourceEx::loadAndValidateDataFromPdbEx

Membuka dan memverifikasi bahwa file database program (.pdb) cocok dengan informasi tanda tangan yang disediakan, dan menyiapkan file .pdb sebagai sumber data debug, dengan prefetching rekaman opsional.

Sintaks

HRESULT loadAndValidateDataFromPdbEx ( 
   LPCOLESTR pdbPath,
   GUID*     pcsig70,
   DWORD     sig,
   DWORD     age,
   BOOL      fPdbPrefetching
);

Parameter

pdbPath

[masuk] Jalur ke file .pdb.

pcsig70

[di] Tanda tangan pengidentifikasi unik global (GUID) untuk memverifikasi terhadap tanda tangan file .pdb. Hanya file .pdb di Visual C++ dan yang lebih baru memiliki tanda tangan GUID.

sig

[di] Tanda tangan 32-bit untuk memverifikasi terhadap tanda tangan file .pdb.

age

[di] Nilai usia untuk diverifikasi. Usia tidak selalu sesuai dengan nilai waktu yang diketahui, itu digunakan untuk menentukan apakah file .pdb tidak sinkron dengan file .exe yang sesuai.

fPdbPrefetching

[di] Jika diatur ke TRUE, rekaman debug yang berdekatan diambil sebelumnya ke dalam memori, berpotensi mengganti banyak operasi I/O file yang lebih kecil dengan lebih sedikit, operasi yang lebih besar, dan dengan demikian meningkatkan throughput keseluruhan karena rekaman tersebut kemudian diakses, dengan mengorbankan penggunaan memori yang berpotensi meningkat. Jika diatur ke FALSE, ini berperilaku identik dengan IDiaDataSource::loadAndValidateDataFromPdb. Jika diatur ke beberapa nilai lain, perilaku tidak ditentukan.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat. Tabel berikut memperlihatkan kemungkinan nilai pengembalian untuk metode ini.

Nilai Deskripsi
E_PDB_NOT_FOUND Gagal membuka file, atau file memiliki format yang tidak valid.
E_PDB_FORMAT Mencoba mengakses file dengan format tidak terpakai.
E_PDB_INVALID_SIG Tanda tangan tidak cocok.
E_PDB_INVALID_AGE Usia tidak cocok.
E_INVALIDARG Parameter tidak valid.
E_UNEXPECTED Sumber data telah disiapkan.

Keterangan

File .pdb berisi nilai tanda tangan dan usia. Nilai-nilai ini direplikasi dalam file .exe atau .dll yang cocok dengan file .pdb. Sebelum menyiapkan sumber data, metode ini memverifikasi bahwa tanda tangan dan usia file .pdb bernama cocok dengan nilai yang disediakan.

Untuk memuat file .pdb tanpa validasi, gunakan metode .IDiaDataSourceEx::loadDataFromPdbEx

Untuk mendapatkan akses ke proses beban data (melalui mekanisme panggilan balik), gunakan metode .IDiaDataSourceEx::loadDataForExeEx

Untuk memuat file .pdb langsung dari memori, gunakan metode .IDiaDataSourceEx::loadDataFromIStreamEx

Untuk memvalidasi file .pdb tanpa memuatnya, gunakan IDiaDataSourceEx::ValidatePdb metode .

Contoh

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->loadAndValidateDataFromPdbEx( L"yprog.pdb",
                                            &expectedGUIDSignature,
                                            expectedFileSignature,
                                            expectedAge,
                                            TRUE);
if (FAILED(hr))
{
    // Report an error
}

Lihat juga