シンボルを検索するパスと、各パスの検索結果のリストを取得します。
構文
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
パラメーター
dwFields
[入力] 入力される pInfo
のフィールドを指定する SYMBOL_SEARCH_INFO_FIELDS 列挙型のフラグの組み合わせ。
pInfo
[出力] 指定された情報を使用してそのメンバーが満たされる MODULE_SYMBOL_SEARCH_INFO 構造体。 これが null 値の場合、このメソッドは E_INVALIDARG
を返します。
戻り値
メソッドが成功した場合、S_OK
を返します。それ以外の場合はエラー コードを返します。
Note
S_OK
が返された場合でも、(MODULE_SYMBOL_SEARCH_INFO
構造体に) 返された文字列が空である可能性があります。 これは、返すべき検索情報がなかったことを示しています。
解説
MODULE_SYMBOL_SEARCH_INFO
構造体の bstrVerboseSearchInfo
フィールドが空でない場合は、検索したパスとその検索結果のリストが含まれています。 リストはパス、その後に省略記号 ("...")、その後に結果が続く形で書式設定されています。 複数のパスの結果のペアがある場合、各ペアは "\r\n" (キャリッジリターン/ラインフィード) ペアで区切られます。 パターンは次のようになります。
<パス>...<結果>\r\n<パス>...<結果>\r\n<パス>...<結果>
最後のエントリには \r\n シーケンスがないことに注意してください。
例
この例では、このメソッドは 3 つのパスと 3 通りの異なる検索結果を返します。 各行の末尾はキャリッジリターン/ラインフィードのペアになります。 この出力例では、検索結果を単一の文字列として出力するだけです。
Note
"..." の直後から行末までのすべての部分が状態の結果です。
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... シンボルが読み込まれました。