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
executable
[in] Pfad zur EXE-Datei oder DLL-Datei.searchPath
[in] Alternative zum Debuggen von Daten zu durchsuchende Pfad.pCallback
[in] Eine IUnknown-Schnittstelle für ein Objekt, das eine Rückrufschnittstelle, wie IDiaLoadCallback, IDiaLoadCallback2, IDiaReadExeAtOffsetCallbackund/oder die IDiaReadExeAtRVACallback-Schnittstellen unterstützt.
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
IDiaLoadCallback::NotifyDebugDir
IDiaDataSource::loadDataFromPdb