Sdílet prostřednictvím


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

Viz také