IDebugModule3::GetSymbolInfo
Ruft eine Liste von Pfaden ab, die nach Symbolen gesucht werden, sowie die Ergebnisse der Suche nach jedem Pfad.
Syntax
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
Parameter
dwFields
[in] Eine Kombination von Flags aus der SYMBOL_SEARCH_INFO_FIELDS Enumeration, die angibt, welche Felder pInfo
ausgefüllt werden sollen.
pInfo
[out] Eine MODULE_SYMBOL_SEARCH_INFO Struktur, deren Member mit den angegebenen Informationen ausgefüllt werden sollen. Wenn es sich um einen Nullwert handelt, gibt E_INVALIDARG
diese Methode zurück.
Rückgabewert
Wenn die Methode erfolgreich ist, wird sie zurückgegeben S_OK
; andernfalls wird ein Fehlercode zurückgegeben.
Hinweis
Die zurückgegebene Zeichenfolge (in der MODULE_SYMBOL_SEARCH_INFO
Struktur) könnte auch dann leer sein, wenn S_OK
sie zurückgegeben wird. In diesem Fall wurden keine Suchinformationen zurückgegeben.
Hinweise
Wenn das bstrVerboseSearchInfo
Feld der MODULE_SYMBOL_SEARCH_INFO
Struktur nicht leer ist, enthält es eine Liste der durchsuchten Pfade und die Ergebnisse dieser Suche. Die Liste ist mit einem Pfad formatiert, gefolgt von einem Auslassungszeichen ("..."), gefolgt vom Ergebnis. Wenn mehrere Pfadergebnispaare vorhanden sind, wird jedes Paar durch ein "\r\n"-Paar (Wagenrücklauf/Zeilenfeed) getrennt. Das Muster sieht wie folgt aus:
<Pfad>...<result>\r\n<path>...<result>\r\n<path>...<Ergebnis>
Beachten Sie, dass der letzte Eintrag nicht über eine \r\n-Sequenz verfügt.
Beispiel
In diesem Beispiel gibt diese Methode drei Pfade mit drei verschiedenen Suchergebnissen zurück. Jede Zeile wird mit einem Wagenrücklauf-/Zeilenfeedpaar beendet. In der Beispielausgabe werden nur die Suchergebnisse als einzelne Zeichenfolge gedruckt.
Hinweis
Ein Statusergebnis folgt sofort dem "..." bis zum Ende der Zeile.
void ShowSymbolSearchResults(IDebugModule3 *pIDebugModule3)
{
MODULE_SYMBOL_SEARCH_INFO ssi = { 0 };
HRESULT hr;
hr = pIDebugModule3->GetSymbolInfo(SSIF_VERBOSE_SEARCH_INFO,&ssi);
if (SUCCEEDED(hr)) {
CComBSTR searchInfo = ssi.bstrVerboseSearchInfo;
if (searchInfo.Length() != 0) {
std::wcout << (wchar_t *)(BSTR)searchInfo;
std::wcout << std::endl;
}
}
}
c:\symbols\user32.pdb... Die Datei wurde nicht gefunden.c:\winnt\symbols\user32.pdb... Die Version stimmt nicht überein.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Geladene Symbole.