IDebugModule3::GetSymbolInfo
Načte seznam cest, které jsou vyhledány symboly a výsledky hledání jednotlivých cest.
Syntaxe
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
Parametry
dwFields
[v] Kombinace příznaků z SYMBOL_SEARCH_INFO_FIELDS výčtu určující, která pole pInfo
mají být vyplněna.
pInfo
[ven] Struktura MODULE_SYMBOL_SEARCH_INFO , jejíž členy mají být vyplněny zadanými informacemi. Pokud se jedná o hodnotu null, tato metoda vrátí E_INVALIDARG
.
Vrácená hodnota
Pokud je metoda úspěšná, vrátí S_OK
; v opačném případě vrátí kód chyby.
Poznámka:
Vrácený řetězec (ve MODULE_SYMBOL_SEARCH_INFO
struktuře) může být prázdný, i když S_OK
se vrátí. V tomto případě nebyly k dispozici žádné informace o hledání, které by bylo potřeba vrátit.
Poznámky
bstrVerboseSearchInfo
Pokud pole MODULE_SYMBOL_SEARCH_INFO
struktury není prázdné, obsahuje seznam cest prohledáných a výsledků tohoto hledání. Seznam je naformátovaný cestou, za kterou následuje tři tečky (...), za kterým následuje výsledek. Pokud existuje více než jeden pár výsledků cesty, je každá dvojice oddělena dvojicí \r\n (znak-návrat/řádek). Vzor vypadá takto:
<cesta>...<result>\r\n<cesta>...<result>\r\n<cesta>...<Výsledek>
Všimněte si, že poslední položka nemá sekvenci \r\n.
Příklad
V tomto příkladu tato metoda vrátí tři cesty se třemi různými výsledky hledání. Každý řádek je ukončen dvojicí návratu na začátek řádku nebo spojnice. Příklad výstupu pouze vytiskne výsledky hledání jako jeden řetězec.
Poznámka:
Výsledek stavu je vše hned za "..." až do konce řádku.
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... Soubor nebyl nalezen.c:\winnt\symbols\user32.pdb... Verze se neshoduje.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Načtené symboly