Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dosyayla .exe/.dll ilişkili hata ayıklama verilerini açar ve hazırlar.
Sözdizimi
HRESULT loadDataFromMiscInfo (
LPCOLESTR executable,
LPCOLESTR searchPath,
DWORD timeStampExe,
DWORD timeStampDbg,
DWORD sizeOfExe,
DWORD cbMiscInfo,
BYTE* pbMiscInfo,
IUnknown* pCallback
);
Parametreler
executable
[in] veya .exe dosyasının .dll yolu.
searchPath
[in] Hata ayıklama verilerini aramak için alternatif yollar. Birden çok yol noktalı virgülle ayrılmış olmalıdır. Yollar sonunda \bir içerebilir.
timeStampExe
[in] Yürütülebilir görüntü için alternatif zaman damgası.
timeStampDbg
[in] Hata ayıklama bilgileri için alternatif zaman damgası.
sizeOfExe
[in] Yürütülebilir görüntünün bayt cinsinden alternatif boyutu.
cbMiscInfo
[in] Parametresinin bayt cinsinden boyutu pbMiscInfo .
pbMiscInfo
[in] Dosya adına hata ayıklama bilgilerini sağlayan biçimde alternatif hata ayıklama üst bilgisi IMAGE_DEBUG_MISC .
pCallback
[in] IUnknown, IDiaLoadCallback, ve/veya arabirimleri gibi IDiaLoadCallback2bir hata ayıklama geri çağırma arabirimini IDiaReadExeAtOffsetCallbackdestekleyen bir nesne arabirimiIDiaReadExeAtRVACallback.
Dönüş Değeri
Başarılı olursa, S_OKdöndürür; aksi takdirde bir hata kodu döndürür. Aşağıdaki tabloda bu yöntem için olası hata kodlarından bazıları gösterilmektedir.
| Değer | Açıklama |
|---|---|
E_PDB_NOT_FOUND |
Dosya açılamadı veya dosya geçersiz bir biçime sahip. |
E_PDB_FORMAT |
Eski bir biçime sahip bir dosyaya erişmeye çalışıldı. |
E_PDB_INVALID_SIG |
İmza eşleşmiyor. |
E_PDB_INVALID_AGE |
Yaş eşleşmiyor. |
E_INVALIDARG |
Geçersiz parametre. |
E_UNEXPECTED |
Veri kaynağı zaten hazırlanmıştır. |
Açıklamalar
pbMiscInfo yürütülebilir görüntüdeki hata ayıklama bilgilerinin yerini alır ve ilişkili hata ayıklama veri konumunu adlandırıyor. Zaman damgaları ve boyut, hata ayıklama bilgileriyle eşleştirmek için kullanılır.
Hata ayıklama verilerini bir sembol sunucusundan yüklüyorsanız ,symsrv.dll kullanıcının uygulamasının veya msdia140.dll yüklü olduğu dizinde bulunmalı veya sistem dizininde bulunmalıdır.
Bu yöntem hata ayıklama verilerini arar ve hazırlar. Aramanın ilerleme durumu isteğe bağlı olarak geri çağırmalar aracılığıyla raporlanabilir ve denetlenebilir. Örneğin, IDiaLoadCallback::NotifyDebugDir yöntemi bir hata ayıklama dizini bulup işlediğinde IDiaDataSource::loadDataForExe çağrılır.
IDiaReadExeAtOffsetCallback ve IDiaReadExeAtRVACallback arabirimleri, dosyaya standart dosya G/Ç üzerinden doğrudan erişilemediğinde istemci uygulamasının yürütülebilir dosyadan veri okumak için alternatif yöntemler sağlamasına olanak sağlar.
Doğrulama olmadan bir .pdb dosyası yüklemek için yöntemini kullanın IDiaDataSource::loadDataFromPdb .
.pdb dosyasını belirli ölçütlere göre doğrulamak için yöntemini kullanın IDiaDataSource::loadAndValidateDataFromPdb .
Bir .pdb dosyasını doğrudan bellekten yüklemek için yöntemini kullanın IDiaDataSource::loadDataFromIStream .
Bir .pdb dosyasını yüklemeden doğrulamak için IDiaDataSourceEx::ValidatePdb yöntemini kullanın.
Örnek
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
}