Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Überprüft, ob die Programmdatenbankdatei (PDB) den bereitgestellten Signaturinformationen entspricht.
Syntax
HRESULT ValidatePdb (
LPCOLESTR pdbPath,
const GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL* pfStripped
);
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.
pfStripped
[out] Wenn der PDB mit den anderen Informationen übereinstimmt, wird dieser Parameter festgelegt, um anzugeben, ob der PDB von privaten Symbolen entfernt wurde. Dies ist derselbe Wert wie von IDiaSymbol::get_isStripped zurückgegeben. Wenn der PDB nicht mit den anderen Werten übereinstimmt oder diese Methode fehlschlägt, ist dieser Parameter nicht angegeben.
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. Mit dieser Methode wird überprüft, ob die Signatur und das Alter der benannten PDB-Datei den angegebenen Werten entsprechen, ohne dass die PDB sonst geladen oder für die Verwendung vorbereitet wird.
Verwenden Sie die IDiaDataSourceEx::loadDataFromPdbEx Methode, um eine PDB-Datei ohne Überprüfung zu laden.
Verwenden Sie die IDiaDataSourceEx::loadAndValidateDataFromPdbEx Methode, um die PDB-Datei anhand bestimmter Kriterien zu laden und zu überprüfen.
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;
BOOL fStripped = FALSE;
HRESULT hr;
hr = pSource->lValidatePdb( L"myprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge,
&fStripped);
if (FAILED(hr))
{
// Report an error
}