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...已加载符号。

另请参阅