Bagikan melalui


IDiaDataSource::loadDataFromCodeViewInfo

Membuka dan menyiapkan data debug yang terkait dengan .exe/.dll file.

Sintaksis

HRESULT loadDataFromCodeViewInfo (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   DWORD     cbCvInfo,
   BYTE*     pbCvInfo,
   IUnknown* pCallback
);

Parameter-parameternya

berkas yang dapat dieksekusi

[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 \.

cbCvInfo

[di] Ukuran dalam byte pbCvInfo parameter.

pbCvInfo

[di] Informasi tampilan kode header debug alternatif (untuk menggantikan apa yang dibaca normal dari IMAGE_DEBUG_DIRECTORY yang dapat dieksekusi). Hanya header RSDS atau NB10 yang didukung.

pCallback

[di] Antarmuka IUnknown untuk objek yang mendukung antarmuka panggilan balik debug, seperti IDiaLoadCallbackantarmuka , , IDiaLoadCallback2, IDiaReadExeAtOffsetCallbackdan/atau 'IDiaReadExeAtRVACallback .

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 yang tidak didukung.
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

Informasi tampilan kode, dalam IMAGE_DEBUG_TYPE_CODEVIEW format, menamai lokasi data debug terkait serta menyediakan bidang signture dan usia untuk dicocokkan.

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 yang disediakan lalu 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 .pdb file tanpa validasi, gunakan IDiaDataSource::loadDataFromPdb metode .

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

BYTE pbCodeViewInfo[] = {
  ...
};

HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
    // Report error
}

Lihat juga