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... Загруженные символы.