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.
Öffnet die Debugdaten, die der .exe/.dll Datei zugeordnet sind, und bereitet sie vor.
Syntax
HRESULT loadDataFromCodeViewInfo (
LPCOLESTR executable,
LPCOLESTR searchPath,
DWORD cbCvInfo,
BYTE* pbCvInfo,
IUnknown* pCallback
);
Die Parameter
ausführbare Datei
[in] Pfad zur .exe Datei..dll
searchPath
[in] Alternative Pfade zum Suchen nach Debugdaten. Mehrere Pfade sollten durch Semikolons getrennt sein. Pfade können einen nachgestellten \Pfad enthalten.
cbCvInfo
[in] Die Größe in Byte des pbCvInfo Parameters.
pbCvInfo
[in] Die informationen zur alternativen Debugheader-Codeansicht (um den normalen Lesevorgang aus der IMAGE_DEBUG_DIRECTORY der ausführbaren Datei zu ersetzen). Nur RSDS- oder NB10-Header werden unterstützt.
pCallback
[in] Eine IUnknown Schnittstelle für ein Objekt, das eine Debugrückrufschnittstelle unterstützt, z. B. die IDiaLoadCallback, IDiaLoadCallback2die , die IDiaReadExeAtOffsetCallbackund/oder die IDiaReadExeAtRVACallback-Schnittstellen .
Rückgabewert
Wenn dies erfolgreich ist, wird S_OKzurückgegeben; andernfalls wird ein Fehlercode zurückgegeben. In der folgenden Tabelle sind einige der möglichen Fehlercodes für diese Methode aufgeführt.
| 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 nicht unterstützten 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 vorbereitet. |
Bemerkungen
Die Codeansichtsinformationen im IMAGE_DEBUG_TYPE_CODEVIEW Format nennen den zugeordneten Debugdatenspeicherort sowie die Signatur- und Altersfelder, mit denen abgeglichen werden soll.
Wenn Sie Debugdaten von einem Symbolserver laden, muss symsrv.dll im selben Verzeichnis vorhanden sein, in dem entweder die Anwendung des Benutzers oder msdia140.dll installiert ist, oder sie muss im Systemverzeichnis vorhanden sein.
Diese Methode liest den bereitgestellten Debugheader und sucht dann nach und bereitet die Debugdaten vor. Der Fortschritt der Suche kann optional über Rückrufe gemeldet und gesteuert werden. Dies wird beispielsweise aufgerufen, wenn die IDiaLoadCallback::NotifyDebugDirIDiaDataSource::loadDataForExe Methode ein Debugverzeichnis findet und verarbeitet.
IDiaReadExeAtOffsetCallback Mit IDiaReadExeAtRVACallback den Schnittstellen kann die Clientanwendung alternative Methoden zum Lesen von Daten aus der ausführbaren Datei bereitstellen, wenn auf die Datei nicht direkt über Standarddatei-E/A zugegriffen werden kann.
Verwenden Sie die .pdb Methode, um eine IDiaDataSource::loadDataFromPdb Datei ohne Überprüfung zu laden.
Verwenden Sie die IDiaDataSource::loadAndValidateDataFromPdb Methode, um die PDB-Datei anhand bestimmter Kriterien zu überprüfen.
Verwenden Sie die Methode, um eine PDB-Datei direkt aus dem IDiaDataSource::loadDataFromIStream Arbeitsspeicher zu laden.
Um eine PDB-Datei zu überprüfen, ohne sie zu laden, verwenden Sie die IDiaDataSourceEx::ValidatePdb' -Methode.
Beispiel
BYTE pbCodeViewInfo[] = {
...
};
HRESULT hr = pSource->loadDataFromCodeViewInfo( L"myprog.exe", L".\debug", sizeof(pbCodeViewInfo), pbCodeViewInfo, nullptr);
if (FAILED(hr))
{
// Report error
}