Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
}