Поделиться через


IDebugModule3::GetSymbolInfo

Извлекает список путей, которые ищут символы, а также результаты поиска по каждому пути.

Синтаксис

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

Параметры

dwFields
[in] Сочетание флагов из перечисления SY МБOL_SEARCH_INFO_FIELDS, указывающее, какие поля pInfo должны быть заполнены.

pInfo
[out] Структура MODULE_SYМБOL_SEARCH_INFO, члены которой должны быть заполнены указанными сведениями. Если это значение null, возвращается этот метод E_INVALIDARG.

Возвращаемое значение

Если метод успешно выполнен, возвращается S_OK; в противном случае возвращается код ошибки.

Примечание.

Возвращаемая строка (в MODULE_SYMBOL_SEARCH_INFO структуре) может быть пустой, даже если S_OK возвращается. В этом случае не было никакой поисковой информации для возврата.

Замечания

bstrVerboseSearchInfo Если поле MODULE_SYMBOL_SEARCH_INFO структуры не является пустым, он содержит список путей поиска и результатов этого поиска. Список отформатирован путем, за которым следует многоточие ("..."), за которым следует результат. Если существует несколько пар результатов пути, каждая пара разделена парой "\r\n" (каретки-return/linefeed). Шаблон выглядит следующим образом:

<путь>...<result>\r\n<path>...<result>\r\n<path>...<Результат>

Обратите внимание, что последняя запись не имеет последовательности \r\n.

Пример

В этом примере этот метод возвращает три пути с тремя различными результатами поиска. Каждая строка завершается парой возврата и линии каретки. Пример выходных данных просто выводит результаты поиска в виде одной строки.

Примечание.

Результат состояния — это все сразу после "..." до конца линии.

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... Файл не найден.c:\winnt\symbols\user32.pdb... Версия не соответствует.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Загруженные символы.

См. также