winapi从函数的地址中获取受损的名称

max*_*max 3 c++ winapi name-mangling

在我的C++ applicatoin我有功能的虚拟地址,我希望得到他们的错位的名字.现在我只能通过使用winapi SymFromAddr函数获得未编号的名称.有没有办法获得受损的名字呢?

Han*_*ant 5

使用SymSetOptions().您想要关闭SYMOPT_UNDNAME选项以查看损坏的名称.

所以,粗略地说:

  DWORD options = SymGetOptions();
  SymSetOptions(options & ~SYMOPT_UNDNAME);
  if (SymFromAddr(hProcess, dwAddress, &dwDisplacement, pSymbol))
  {
      // etc...
  }
  SymSetOptions(options);
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这有效,但我还必须打开 SYMOPT_PUBLICS_ONLY 标志 (2认同)