IDiaDataSourceEx::loadAndValidateDataFromPdbEx
Öffnet und überprüft, ob die Programmdatenbankdatei (PDB) den bereitgestellten Signaturinformationen entspricht, und bereitet die PDB-Datei als Debugdatenquelle mit optionaler Datensatzvorschub vor.
Syntax
HRESULT loadAndValidateDataFromPdbEx (
LPCOLESTR pdbPath,
GUID* pcsig70,
DWORD sig,
DWORD age,
BOOL fPdbPrefetching
);
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.
fPdbPrefetching
[in] Bei Festlegung auf TRUE
, werden angrenzende Debugdatensätze in den Arbeitsspeicher voreingestellt, wodurch möglicherweise viele kleinere Datei-E/A-Vorgänge durch weniger, größere Vorgänge ersetzt werden und somit der gesamter Durchsatz verbessert wird, da anschließend auf diese Datensätze zugegriffen wird, auf Kosten der potenziell erhöhten Speicherauslastung. Bei Festlegung FALSE
auf , verhält sich dies identisch mit IDiaDataSource::loadAndValidateDataFromPdb
. Wenn dieser Wert auf einen anderen Wert festgelegt ist, wird das Verhalten 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. 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::loadDataFromPdbEx
Methode, um eine PDB-Datei ohne Überprüfung zu laden.
Verwenden Sie die IDiaDataSourceEx::loadDataForExeEx
Methode, um Zugriff auf den Datenladevorgang (über einen Rückrufmechanismus) zu erhalten.
Verwenden Sie die Methode, um eine PDB-Datei direkt aus dem IDiaDataSourceEx::loadDataFromIStreamEx
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->loadAndValidateDataFromPdbEx( L"yprog.pdb",
&expectedGUIDSignature,
expectedFileSignature,
expectedAge,
TRUE);
if (FAILED(hr))
{
// Report an error
}