Udostępnij za pośrednictwem


IDebugModule3::GetSymbolInfo

Pobiera listę ścieżek, które są wyszukiwane jako symbole, a także wyniki wyszukiwania każdej ścieżki.

Składnia

int GetSymbolInfo(
    enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
    MODULE_SYMBOL_SEARCH_INFO[]    pinfo
);

Parametry

dwFields
[in] Kombinacja flag z SYMBOL_SEARCH_INFO_FIELDS wyliczenie określające, które pola pInfo mają być wypełnione.

pInfo
[out] Struktura MODULE_SYMBOL_SEARCH_INFO , której składowe mają być wypełnione określonymi informacjami. Jeśli jest to wartość null, ta metoda zwraca wartość E_INVALIDARG.

Wartość zwracana

Jeśli metoda powiedzie się, zwraca S_OKwartość ; w przeciwnym razie zwraca kod błędu.

Uwaga

Zwrócony ciąg (w MODULE_SYMBOL_SEARCH_INFO strukturze) może być pusty, nawet jeśli S_OK zostanie zwrócony. W tym przypadku nie było żadnych informacji wyszukiwania do zwrócenia.

Uwagi

bstrVerboseSearchInfo Jeśli pole MODULE_SYMBOL_SEARCH_INFO struktury nie jest puste, zawiera listę wyszukiwanych ścieżek i wyniki tego wyszukiwania. Lista jest sformatowana ścieżką, po której następuje wielokropek ("..."), po którym następuje wynik. Jeśli istnieje więcej niż jedna para wyników ścieżki, każda para jest oddzielona parą "\r\n" (karetka-return/linefeed). Wzorzec wygląda następująco:

<ścieżka>...<result>\r\n<ścieżka>...<result>\r\n<ścieżka>...<Wynik>

Należy pamiętać, że ostatni wpis nie ma sekwencji \r\n.

Przykład

W tym przykładzie ta metoda zwraca trzy ścieżki z trzema różnymi wynikami wyszukiwania. Każdy wiersz jest przerywany parą powrotu karetki/linii. Przykładowe dane wyjściowe po prostu wyświetlają wyniki wyszukiwania jako pojedynczy ciąg.

Uwaga

Wynik stanu to wszystko, co następuje natychmiast po "..." do końca wiersza.

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... Nie można odnaleźć pliku.c:\winnt\symbols\user32.pdb... Wersja jest niezgodna.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Załadowano symbole.

Zobacz też