2014-11-19 4 views
3

В моей прикладной программе C++ у меня есть виртуальные адреса функций, и я хочу получить их искаженные имена. прямо сейчас я могу получить только неповрежденное имя, используя функцию winapi SymFromAddr. есть ли способ получить исковерканные имена?winapi получить искаженное имя от адреса функции

ответ

5

Использование SymSetOptions(). Вы хотите отключить опцию SYMOPT_UNDNAME, чтобы увидеть измененное имя.

Так, примерно:

DWORD options = SymGetOptions(); 
    SymSetOptions(options & ~SYMOPT_UNDNAME); 
    if (SymFromAddr(hProcess, dwAddress, &dwDisplacement, pSymbol)) 
    { 
     // etc... 
    } 
    SymSetOptions(options); 
+1

Спасибо, это сработало, но я также должен был включить флаг SYMOPT_PUBLICS_ONLY – max

Смежные вопросы