J'utilise SymEnumSymbols
pour obtenir tous les symboles correspondants à un masque donné, et les pousser dans un vecteur en utilisant la fonction CALLBACK. Le problème est que le nom du symbole (qui se trouve dans la structure PSYMBOL_INFO
) est seulement le nom de la fonction, et non la signature entière .. Par exemple, j'ai cette fonction:DbgHelp - Obtenir la signature complète du symbole (nom de la fonction + types de paramètres)
TestMe!GetImageProcAddress (struct HINSTANCE__ *hi, int num)
Quand j'appelle SymEnumSymbols
avec le masque "TestMe!GetImageProcAddress"
et imprime le nom du symbole apparié, je reçois:
printf("%s\n", pSymInfo->Name); // Prints: GetImageProcAddress
Mais je veux imprimer un de ces:
TestMe!GetImageProcAddress (struct HINSTANCE__ *, int)
GetImageProcAddress (struct HINSTANCE__ *, int)
Donc, ma question - est-il possible d'obtenir la signature complète du symbole (nom de la fonction + type de paramètres)? J'ai été en mesure de parcourir les paramètres en utilisant SymSetContext
, puis SymEnumSymbols
et en filtrant avec le drapeau SYMFLAG_PARAMETER
- mais je ne sais pas comment obtenir les types de paramètres ..
Merci!