Compartilhar via


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_OKum 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.

Confira também