IDiaDataSource::loadAndValidateDataFromPdb
Öffnet die Programmdatenbankdatei (.pdb), und überprüft, ob sie mit den angegebenen Signaturinformationen übereinstimmt, und bereitet die PDB-Datei dann als Debugdatenquelle vor.
Syntax
HRESULT loadAndValidateDataFromPdb (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age
);
Parameter
pdbPath
[in] Der Pfad zur PDB-Datei.
pcsig70
[in] Die GUID-Signatur (Globally Unique Identifier), die anhand der PDB-Dateisignatur überprüft werden soll. Nur PDB-Dateien in Visual C++ und höher verfügen über GUID-Signaturen.
sig
[in] Die 32-Bit-Signatur, die anhand der PDB-Dateisignatur überprüft werden soll.
age
[in] Der Alterswert, der überprüft werden soll. Das Alter entspricht nicht unbedingt einem bekannten Zeitwert, es wird verwendet, um zu bestimmen, ob eine PDB-Datei nicht mit einer entsprechenden .exe Datei synchronisiert ist.
Rückgabewert
Wenn die Ausführung erfolgreich ist, wird S_OK
, andernfalls ein Fehlercode zurückgegeben. In der folgenden Tabelle werden die möglichen Rückgabewerte für diese Methode angezeigt.
Wert | Beschreibung |
---|---|
E_PDB_NOT_FOUND |
Fehler beim Öffnen der Datei, oder die Datei weist ein ungültiges Format auf. |
E_PDB_FORMAT |
Es wurde versucht, auf eine Datei mit einem veralteten Format zuzugreifen. |
E_PDB_INVALID_SIG |
Die Signatur stimmt nicht überein. |
E_PDB_INVALID_AGE |
Das Alter stimmt nicht überein. |
E_INVALIDARG |
Ungültiger -Parameter. |
E_UNEXPECTED |
Die Datenquelle wurde bereits aufbereitet. |
Bemerkungen
Eine PDB-Datei enthält sowohl Signatur- als auch Alterswerte. Diese Werte werden in der EXE- oder DLL-Datei repliziert, die der PDB-Datei entspricht. Bevor Sie die Datenquelle vorbereiten, überprüft diese Methode, ob die Signatur und das Alter der benannten PDB-Datei mit den angegebenen Werten übereinstimmen.
Verwenden Sie die IDiaDataSourceEx::loadAndValidateDataFromPdbEx
Methode, um eine PDB-Datei zu laden und mit Vorabrufen zu überprüfen.
Verwenden Sie die IDiaDataSource::loadDataFromPdb
Methode, um eine PDB-Datei ohne Überprüfung zu laden.
Verwenden Sie die IDiaDataSource::loadDataForExe
Methode, um Zugriff auf den Datenladevorgang (über einen Rückrufmechanismus) zu erhalten.
Verwenden Sie die Methode, um eine PDB-Datei direkt aus dem IDiaDataSource::loadDataFromIStream
Arbeitsspeicher zu laden.
Verwenden Sie die Methode, um eine PDB-Datei zu überprüfen, ohne sie IDiaDataSourceEx::ValidatePdb
zu laden.
Beispiel
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->loadAndValidateDataFromPdb( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge);
if (FAILED(hr))
{
// Report an error
}