IDiaDataSourceEx::loadDataForExeEx

Membuka dan menyiapkan data debug yang terkait dengan file .exe/.dll, dengan prefetching rekaman opsional.

Sintaks

HRESULT loadDataForExeEx (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback,
   BOOL      fPdbPrefetching
);

Parameter

executable

[in] Jalur ke file .exe atau .dll.

searchPath

[in] Jalur alternatif untuk mencari data debug. Beberapa jalur harus dibatasi titik koma. Jalur mungkin berisi trailing \.

pCallback

[di] Antarmuka IUnknown untuk objek yang mendukung antarmuka panggilan balik debug, seperti IDiaLoadCallback, , IDiaLoadCallback2IDiaReadExeAtOffsetCallback, dan/atau IDiaReadExeAtRVACallback antarmuka.

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::loadDataForExe. Jika diatur ke beberapa nilai lain, perilaku tidak ditentukan.

Tampilkan Nilai

Jika berhasil, mengembalikan S_OK; jika tidak, mengembalikan kode galat. 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 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

Header debug file .exe/.dll menamai lokasi data debug terkait.

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 membaca header debug lalu mencari dan menyiapkan data debug. Progres pencarian dapat, secara opsional, dilaporkan dan dikontrol melalui panggilan balik. Misalnya, IDiaLoadCallback::NotifyDebugDir dipanggil ketika IDiaDataSourceEx::loadDataForExeEx 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 .IDiaDataSourceEx::loadDataFromPdbEx

Untuk memvalidasi file .pdb terhadap kriteria tertentu, gunakan metode .IDiaDataSourceEx::loadAndValidateDataFromPdbEx

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

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

Contoh

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExeEx( L"myprog.exe", L".\debug", (IUnknown*)&callback, TRUE);
if (FAILED(hr))
{
    // Report error
}

Lihat juga