winapi получить искаженное имя из адреса функции

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


person max    schedule 19.11.2014    source источник


Ответы (1)


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

Итак, примерно:

  DWORD options = SymGetOptions();
  SymSetOptions(options & ~SYMOPT_UNDNAME);
  if (SymFromAddr(hProcess, dwAddress, &dwDisplacement, pSymbol))
  {
      // etc...
  }
  SymSetOptions(options);
person Hans Passant    schedule 19.11.2014
comment
Спасибо, это сработало, но мне также пришлось включить флаг SYMOPT_PUBLICS_ONLY. - person max; 19.11.2014