IDebugModule3::GetSymbolInfo
Recupera uma lista de caminhos que são pesquisados por símbolos, bem como os resultados da pesquisa de cada caminho.
Sintaxe
int GetSymbolInfo(
enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
MODULE_SYMBOL_SEARCH_INFO[] pinfo
);
Parâmetros
dwFields
[em] Uma combinação de sinalizadores da enumeração SYMBOL_SEARCH_INFO_FIELDS especificando quais campos de pInfo
devem ser preenchidos.
pInfo
[saiu] Uma estrutura MODULE_SYMBOL_SEARCH_INFO cujos membros devem ser preenchidos com as informações especificadas. Se esse for um valor nulo, esse método retornará E_INVALIDARG
.
Valor de retorno
Se o método for bem-sucedido, ele retornará e, caso contrário, ele retornará S_OK
um código de erro.
Observação
A cadeia de caracteres retornada (na MODULE_SYMBOL_SEARCH_INFO
estrutura) pode estar vazia mesmo se S_OK
for retornada. Neste caso, não havia informações de busca a serem retornadas.
Comentários
Se o bstrVerboseSearchInfo
campo da MODULE_SYMBOL_SEARCH_INFO
estrutura não estiver vazio, ele conterá uma lista de caminhos pesquisados e os resultados dessa pesquisa. A lista é formatada com um caminho, seguido por uma reticência ("..."), seguido pelo resultado. Se houver mais de um par de resultados de caminho, cada par será separado por um par "\r\n" (carriage-return/linefeed). O padrão tem a seguinte aparência:
<caminho>...<resultado>\r\n<caminho>...<resultado>\r\n<caminho>...<resultado>
Observe que a última entrada não tem uma sequência \r\n.
Exemplo
Neste exemplo, esse método retorna três caminhos com três resultados de pesquisa diferentes. Cada linha é terminada com um par de retorno de carro/alimentação de linha. A saída de exemplo apenas imprime os resultados da pesquisa como uma única cadeia de caracteres.
Observação
Um resultado de status é tudo imediatamente após o "..." até o fim da linha.
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:\símbolos\user32.pdb... Arquivo não encontrado.c:\winnt\símbolos\user32.pdb... A versão não corresponde.\\símbolos\símbolos\user32.dll\0a8sd0ad8ad\user32.pdb... Símbolos carregados.