Freigeben über


IDiaDataSource::loadDataForExe

Öffnet und bereitet die Debugdaten vor, die mit der .exe-/.dll Datei zugeordnet sind.

HRESULT loadDataForExe (
   LPCOLESTR executable,
   LPCOLESTR searchPath,
   IUnknown* pCallback
);

Parameter

Rückgabewert

Bei Erfolg gibt S_OKzurück. andernfalls gibt einen Fehlercode zurück.In der folgenden Tabelle werden einige der möglichen Fehlercodes für diese Methode auf.

Wert

Beschreibung

E_PDB_NOT_FOUND

Fehlgeschlagene, die Datei oder die Datei geöffnet hat ein ungültiges Format.

E_PDB_FORMAT

Versucht, eine Datei mit einem veralteten Format zuzugreifen.

E_PDB_INVALID_SIG

Signatur stimmen nicht überein.

E_PDB_INVALID_AGE

Alter stimmen nicht überein.

E_INVALIDARG

Ungültiger Parameter.

E_UNEXPECTED

Datenquelle ist bereits vorbereitet wurde.

Hinweise

Der von Dateinamen der zugeordnete Kopfzeile der .exe-/.dll Speicherort der Daten Debuggen.

Diese Methode liest den Debug- und anschließend die Header sucht und bereitet die Debugdaten vor.Der Status der Suche optional wird durch Rückrufe gemeldet werden, kann gesteuert.Beispielsweise wird IDiaLoadCallback::NotifyDebugDir aufgerufen, wenn die IDiaDataSource::loadDataForExe-Methode eine Debug- Verzeichnis durchsucht und die Verarbeitung ausführt.

Die IDiaReadExeAtOffsetCallback und IDiaReadExeAtRVACallback-Schnittstellen ermöglichen die Clientanwendung alternative Methoden zum Lesen von Daten aus der ausführbaren Datei bereitzustellen, wenn die Datei nicht direkt vom Standardwert datei-e/a zugegriffen werden kann.

Um eine PDB-Datei ohne Validierung zu laden, verwenden Sie die IDiaDataSource::loadDataFromPdb-Methode.

Um die PDB-Datei mit bestimmten Kriterien zu überprüfen, verwenden Sie die IDiaDataSource::loadAndValidateDataFromPdb-Methode.

Um eine PDB-Datei direkt aus dem Arbeitsspeicher zu laden, verwenden Sie die IDiaDataSource::loadDataFromIStream-Methode.

Beispiel

class MyCallBack: public IDiaLoadCallback
{
...
};
MyCallBack callback;
...
HRESULT hr = pSource->loadDataForExe( L"myprog.exe", L".\debug", (IUnknown*)&callback);
if (FAILED(hr))
{
    // Report error
}

Siehe auch

Referenz

IDiaDataSource

IDiaLoadCallback

IDiaLoadCallback2

IDiaLoadCallback::NotifyDebugDir

IDiaReadExeAtOffsetCallback

IDiaReadExeAtRVACallback

IDiaDataSource::loadDataFromPdb

IDiaDataSource::loadAndValidateDataFromPdb

IDiaDataSource::loadDataFromIStream