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 menyiapkan data debug yang terkait dengan .exe/.dll file.
Sintaksis
HRESULT loadDataFromMiscInfo (
LPCOLESTR executable,
LPCOLESTR searchPath,
DWORD timeStampExe,
DWORD timeStampDbg,
DWORD sizeOfExe,
DWORD cbMiscInfo,
BYTE* pbMiscInfo,
IUnknown* pCallback
);
Parameter-parameternya
executable
[di] Jalur ke .exe file atau .dll .
searchPath
[di] Jalur alternatif untuk mencari data debug. Beberapa jalur harus dibatasi titik koma. Jalur mungkin berisi trailing \.
timeStampExe
[di] Tanda waktu alternatif untuk gambar yang dapat dieksekusi.
timeStampDbg
[di] Tanda waktu alternatif untuk informasi debug.
sizeOfExe
[di] Ukuran alternatif gambar yang dapat dieksekusi dalam byte.
cbMiscInfo
[di] Ukuran dalam byte pbMiscInfo parameter.
pbMiscInfo
[di] Header debug alternatif dalam IMAGE_DEBUG_MISC format yang menyediakan nama file dengan informasi debug.
pCallback
[di] Antarmuka IUnknown untuk objek yang mendukung antarmuka panggilan balik debug, seperti IDiaLoadCallback, , IDiaLoadCallback2IDiaReadExeAtOffsetCallback, dan/atau IDiaReadExeAtRVACallback antarmuka.
Mengembalikan Nilai
Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode kesalahan. Tabel berikut menunjukkan beberapa kemungkinan kode kesalahan 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 usang. |
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. |
Komentar
pbMiscInfo menggantikan informasi debug dalam gambar yang dapat dieksekusi dan memberi nama lokasi data debug terkait. Tanda waktu dan ukuran digunakan untuk mencocokkan informasi debug.
Jika Anda memuat data debug dari server simbol, symsrv.dll harus ada di direktori yang sama di mana aplikasi pengguna atau msdia140.dll diinstal, atau harus ada di direktori sistem.
Metode ini mencari dan menyiapkan data debug. Kemajuan pencarian dapat, secara opsional, dilaporkan dan dikontrol melalui panggilan balik. Misalnya, IDiaLoadCallback::NotifyDebugDir dipanggil ketika IDiaDataSource::loadDataForExe metode menemukan dan memproses direktori debug.
Antarmuka IDiaReadExeAtOffsetCallback dan IDiaReadExeAtRVACallback memungkinkan aplikasi klien untuk menyediakan metode alternatif untuk membaca data dari file yang dapat dieksekusi ketika file tidak dapat diakses langsung melalui I/O file standar.
Untuk memuat file .pdb tanpa validasi, gunakan metode .IDiaDataSource::loadDataFromPdb
Untuk memvalidasi file .pdb terhadap kriteria tertentu, gunakan metode .IDiaDataSource::loadAndValidateDataFromPdb
Untuk memuat file .pdb langsung dari memori, gunakan metode .IDiaDataSource::loadDataFromIStream
Untuk memvalidasi file .pdb tanpa memuatnya, gunakan metode IDiaDataSourceEx::ValidatePdb .
Contoh
DWORD dwTimeStamp = 0x3BF1C039;
DWORD dwSizeImage = 0x0000A000;
BYTE pbMiscInfo[0x110] = {
...
};
HRESULT hr = pSource->loadDataFromMiscInfo( L"myprog.exe", L".\debug", dwTimeStamp, dwTimeStamp, dwSizeOfImage, sizeof(pbMiscInfo), pbMiscInfo, nullptr);
if (FAILED(hr))
{
// Report error
}