我正在使用回溯来打印应用程序的堆栈跟踪,我得到了类似的东西
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]
有没有办法将“链接器名称”转换为“源名称”并从偏移量中获取代码行号?
我想要回溯,看起来像这样:
libQtCore.so.4 (QMetaObject::activate(QObject):1022)
libQtGui.so.4 (QAction::triggered()::47)
UPD。
我知道,由于编译器的具体情况,这种技术可能有效,也可能无效或效果不佳。我想至少在 gcc 和 Visual c++ 中“解包”链接器符号。