IDebugModule3::GetSymbolInfo
检索搜索符号的路径列表以及搜索每个路径的结果。
语法
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
参数
dwFields
[in]SYMBOL_标准版ARCH_INFO_FIELDS枚举中的标志的组合,用于指定要填充的pInfo
字段。
pInfo
[out]要用指定信息填充其成员的MODULE_SYMBOL_标准版ARCH_INFO结构。 如果这是 null 值,则此方法返回 E_INVALIDARG
。
返回值
如果方法成功,则返回 S_OK
;否则返回错误代码。
注意
即使返回,返回的字符串(在结构中 MODULE_SYMBOL_SEARCH_INFO
)也可能为空 S_OK
。 在这种情况下,没有要返回的搜索信息。
备注
bstrVerboseSearchInfo
如果结构的字段MODULE_SYMBOL_SEARCH_INFO
不为空,则它包含搜索的路径列表以及该搜索结果。 列表的格式为路径,后跟省略号(“...”),后跟结果。 如果有多个路径结果对,则每个对由“\r\n”(回车符/换行符)对分隔。 模式如下所示:
<path>...<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...已加载符号。