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.