IDebugModule3::GetSymbolInfo
擷取搜尋符號的路徑清單,以及搜尋每個路徑的結果。
語法
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
參數
dwFields
[in]SYMBOL_SEARCH_INFO_FIELDS 列舉中的旗標組合,指定要填入的欄位pInfo
。
pInfo
[out] MODULE_SYMBOL_SEARCH_INFO 結構,其成員要填入指定的資訊。 如果這是 Null 值,這個方法會傳 E_INVALIDARG
回 。
傳回值
如果方法成功,則會傳 S_OK
回 ,否則會傳回錯誤碼。
注意
即使S_OK
傳回,傳回的字串(在結構中)也可能是空的MODULE_SYMBOL_SEARCH_INFO
。 在此情況下,沒有可傳回的搜尋資訊。
備註
如果結構的 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...已載入符號。