Condividi tramite


IDebugModule3::GetSymbolInfo

Recupera un elenco di percorsi che vengono cercati per i simboli, nonché i risultati della ricerca in ogni percorso.

Sintassi

int GetSymbolInfo(
    enum_SYMBOL_SEARCH_INFO_FIELDS dwFields,
    MODULE_SYMBOL_SEARCH_INFO[]    pinfo
);

Parametri

dwFields
[in] Combinazione di flag dell'enumerazione SYMBOL_edizione StandardARCH_INFO_FIELDS che specifica i campi di pInfo da compilare.

pInfo
[out] Struttura MODULE_SYMBOL_edizione StandardARCH_INFO i cui membri devono essere compilati con le informazioni specificate. Se si tratta di un valore Null, questo metodo restituisce E_INVALIDARG.

Valore restituito

Se il metodo ha esito positivo, restituisce S_OK; in caso contrario, restituisce un codice di errore.

Nota

La stringa restituita (nella MODULE_SYMBOL_SEARCH_INFO struttura) può essere vuota anche se S_OK viene restituita. In questo caso, non sono state restituite informazioni di ricerca.

Osservazioni:

Se il bstrVerboseSearchInfo campo della MODULE_SYMBOL_SEARCH_INFO struttura non è vuoto, contiene un elenco di percorsi ricercati e i risultati di tale ricerca. L'elenco è formattato con un percorso, seguito dai puntini di sospensione ("..."), seguito dal risultato. Se sono presenti più coppie di risultati del percorso, ogni coppia è separata da una coppia "\r\n" (ritorno a capo/avanzamento riga). Il modello è simile al seguente:

<percorso>...<result>\r\n<path>...<result>\r\n<path>...<Risultato>

Si noti che l'ultima voce non ha una sequenza \r\n.

Esempio

In questo esempio questo metodo restituisce tre percorsi con tre risultati di ricerca diversi. Ogni riga viene terminata con una coppia ritorno a capo/avanzamento riga. L'output di esempio stampa solo i risultati della ricerca come singola stringa.

Nota

Un risultato di stato è tutto immediatamente dopo "..." fino alla fine della riga.

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... File non trovato.c:\winnt\symbols\user32.pdb... La versione non corrisponde.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Simboli caricati.

Vedi anche