IDebugModule3::GetSymbolInfo

Récupère une liste de chemins d’accès recherchés pour les symboles ainsi que les résultats de la recherche de chaque chemin d’accès.

Syntaxe

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

Paramètres

dwFields
[in] Combinaison d’indicateurs de l’énumération SY MoOL_SEARCH_INFO_FIELDS spécifiant les champs à pInfo remplir.

pInfo
[out] Structure MODULE_SYMoOL_SEARCH_INFO dont les membres doivent être renseignés avec les informations spécifiées. S’il s’agit d’une valeur null, cette méthode retourne E_INVALIDARG.

Valeur de retour

Si la méthode réussit, elle retourne S_OK; sinon, elle retourne un code d’erreur.

Remarque

La chaîne retournée (dans la MODULE_SYMBOL_SEARCH_INFO structure) peut être vide même si S_OK elle est retournée. Dans ce cas, il n’y avait aucune information de recherche à retourner.

Notes

Si le bstrVerboseSearchInfo champ de la MODULE_SYMBOL_SEARCH_INFO structure n’est pas vide, il contient une liste de chemins d’accès recherchés et les résultats de cette recherche. La liste est mise en forme avec un chemin d’accès, suivi d’un point de suspension (« ... »), suivi du résultat. S’il existe plusieurs paires de résultats de chemin d’accès, chaque paire est séparée par une paire « \r\n » (retour chariot/flux de lignes). Le modèle ressemble à ceci :

<chemin d’accès>...<result>\r\n<path>...<result>\r\n<path>...<Résultat>

Notez que la dernière entrée n’a pas de séquence \r\n.

Exemple

Dans cet exemple, cette méthode retourne trois chemins avec trois résultats de recherche différents. Chaque ligne est arrêtée avec une paire retour chariot/saut de ligne. L’exemple de sortie imprime simplement les résultats de la recherche sous forme de chaîne unique.

Remarque

Un résultat d’état est tout ce qui suit immédiatement le « ... » jusqu’à la fin de la ligne.

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... Fichier introuvable.c :\winnt\symbols\user32.pdb... La version ne correspond pas.\\symbols\symbols\user32.dll\0a8sd0ad8ad\user32.pdb... Symboles chargés.

Voir aussi