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_OK
wartość ; 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.