【问题标题】:How can I provide addr2line with a symbol file for use with a stripped binary in Ubuntu?如何为 addr2line 提供符号文件以在 Ubuntu 中与剥离的二进制文件一起使用?
【发布时间】:2016-04-16 05:38:33
【问题描述】:

我有一个在 Ubuntu 中运行的 C++ 应用程序。我想做的是剥离其符号的应用程序二进制文件,以便它们不是二进制文件的一部分,但使用 addr2line 实用程序通过引用符号文件而不是作为二进制文件一部分的符号来获取回溯信息.这可能吗?

到目前为止,我得到的最接近的是使用以下方法生成符号文件:

strip MyBinary -o thesymbols.sym

然后我尝试使用 addr2line 实用程序使用该文件,如下所示:

addr2line 0x779e81 -b thesymbols.sym

但这会产生抱怨:

addr2line: 'a.out': No such file

然后我尝试了:

addr2line 0x779e81 -e MyBinary -b thesymbols.sym

但这会产生抱怨:

addr2line: MyBinary: Invalid bfd target

有人可以引导我朝着正确的方向前进吗?我做错了什么?

提前感谢您的帮助!

编辑:

我现在意识到,当我认为我正在创建一个仅包含符号信息的文件时:

strip MyBinary -o thesymbols.sym

我实际上只是创建了一个名为 thesymbols.sym 的剥离二进制文件

话虽如此,我最初的问题仍然存在。有什么想法吗?

【问题讨论】:

  • 您找到解决方案了吗?

标签: ubuntu build addr2line


【解决方案1】:

您可以将未剥离的二进制文件与 addr2line 一起使用,并使用您运行剥离的二进制文件的地址。 该地址相对于 .text 部分的开头,在剥离和未剥离的二进制文件中相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-05
    • 2012-10-22
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2016-03-21
    相关资源
    最近更新 更多