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.
Program veritabanı (.pdb) dosyasının sağlanan imza bilgileriyle eşleşip eşleşmediğini açar ve doğrular ve isteğe bağlı kayıt ön oluşturma ile .pdb dosyasını hata ayıklama veri kaynağı olarak hazırlar.
Sözdizimi
HRESULT loadAndValidateDataFromPdbEx (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL fPdbPrefetching
);
Parametreler
pdbPath
[in] .pdb dosyasının yolu.
pcsig70
[in] .pdb dosya imzasını doğrulamak için genel benzersiz tanımlayıcı (GUID) imzası. Yalnızca Visual C++ ve sonraki sürümlerdeki .pdb dosyalarının GUID imzaları vardır.
sig
[in] .pdb dosya imzasını doğrulamak için 32 bit imza.
age
[in] Doğrulanması gereken yaş değeri. Yaş bilinen bir saat değerine karşılık gelmez; .pdb dosyasının ilgili .exe dosyasıyla eşitlenmemiş olup olmadığını belirlemek için kullanılır.
fPdbPrefetching
[in] olarak TRUE
ayarlanırsa, bitişik hata ayıklama kayıtları belleğe önceden eklenir, büyük olasılıkla daha küçük dosya G/Ç işlemlerini daha az, daha büyük işlemlerle değiştirir ve böylece daha sonra bu kayıtlara erişilirken bellek kullanımını artırma olasılığına karşı genel aktarım hızını artırır. olarak ayarlanırsa FALSE
, bu, ile IDiaDataSource::loadAndValidateDataFromPdb
aynı şekilde davranır. Başka bir değere ayarlanırsa davranış belirtilmez.
Dönüş Değeri
Başarılı olursa döndürür S_OK
; aksi takdirde bir hata kodu döndürür. Aşağıdaki tabloda bu yöntem için olası dönüş değerleri gösterilmektedir.
Value | 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
.pdb dosyası hem imza hem de yaş değerlerini içerir. Bu değerler .pdb dosyasıyla eşleşen .exe veya .dll dosyasında çoğaltılır. Bu yöntem, veri kaynağını hazırlamadan önce adlandırılmış .pdb dosyasının imzasının ve yaşının sağlanan değerlerle eşleşip eşleşmediğini doğrular.
Doğrulama olmadan bir .pdb dosyası yüklemek için yöntemini kullanın IDiaDataSourceEx::loadDataFromPdbEx
.
Veri yükleme işlemine erişim elde etmek için (geri çağırma mekanizması aracılığıyla) yöntemini kullanın IDiaDataSourceEx::loadDataForExeEx
.
Bir .pdb dosyasını doğrudan bellekten yüklemek için yöntemini kullanın IDiaDataSourceEx::loadDataFromIStreamEx
.
.pdb dosyasını yüklemeden doğrulamak için yöntemini kullanın IDiaDataSourceEx::ValidatePdb
.
Örnek
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
}