特定のマスクに一致するすべてのシンボルを取得し、CALLBACK 関数を使用SymEnumSymbols
してそれらをベクトルにプッシュするために使用しています。問題は、シンボル名 (PSYMBOL_INFO
構造内にある) が関数の名前のみであり、署名全体ではないことです。たとえば、次の関数があります。
TestMe!GetImageProcAddress (struct HINSTANCE__ *hi, int num)
SymEnumSymbols
maskで呼び出し"TestMe!GetImageProcAddress"
、一致したシンボルの名前を出力すると、次のようになります。
printf("%s\n", pSymInfo->Name); // Prints: GetImageProcAddress
しかし、これらのいずれかを印刷したい:
TestMe!GetImageProcAddress (struct HINSTANCE__ *, int)
GetImageProcAddress (struct HINSTANCE__ *, int)
だから私の質問 - 完全なシンボル署名 (関数の名前 + パラメーターの型) を取得する方法はありますか? を使用してパラメーターを反復処理しSymSetContext
、次にSymEnumSymbols
フラグを使用してフィルター処理することができましSYMFLAG_PARAMETER
たが、パラメーターの型を取得する方法がわかりません..
ありがとう!