Freigeben über


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 FALSEauf , 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
}

Siehe auch