如何"解密"链接器方法名称?

Are*_*nim 5 c++ debugging backtrace

我正在使用backtrace打印应用程序的堆栈跟踪,我得到类似的东西

libQtCore.so.4(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x843) [0x7f889d20cf33]
libQtGui.so.4(_ZN7QAction9triggeredEb+0x32) [0x7f889d76c2f2]
libQtGui.so.4(_ZN7QAction8activateENS_11ActionEventE+0xb0) [0x7f889d76d670]
libQtGui.so.4(+0x6242f4) [0x7f889db862f4]
Run Code Online (Sandbox Code Playgroud)

有没有办法将"链接器名称"转换为"源名称"并从偏移量中获取代码行号?

我想要回溯,看起来像这样:

libQtCore.so.4 (QMetaObject::activate(QObject):1022)
libQtGui.so.4  (QAction::triggered()::47) 
Run Code Online (Sandbox Code Playgroud)

UPD.

据我所知,由于编译器的细节,这种技术可能起作用或不起作用或工作不好.我想至少在gcc和visual c ++中"demangle"链接符号.

par*_*mar 6

一旦你拥有了至少在Windows上的功能名称,就可以使用DIA SDK获取源文件行号等