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

如何为addr2line提供一个符号文件,以便与Ubuntu中的剥离二进制文件一起使用? 我有一个C++应用程序运行在Ubuntu中。我想做的是去掉应用程序二进制文件中的符号,使它们不是二进制文件的一部分,但使用addr2line实用程序通过引用符号文件而不是二进制文件中的符号来获取回溯信息。这可能吗,ubuntu,build,addr2line,Ubuntu,Build,Addr2line,到目前为止,我最接近的方法是使用以下方法生成符号文件: strip MyBinary -o thesymbols.sym 然后我尝试将该文件与addr2line实用程序一起使用,如下所示: addr2line 0x779e81 -b thesymbols.sym 但这就产生了抱怨: addr2line: 'a.out': No such file addr2line: MyBinary: Invalid bfd target 于是我试着: addr2line 0x779e81 -e My

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

strip MyBinary -o thesymbols.sym
然后我尝试将该文件与addr2line实用程序一起使用,如下所示:

addr2line 0x779e81 -b thesymbols.sym
但这就产生了抱怨:

addr2line: 'a.out': No such file
addr2line: MyBinary: Invalid bfd target
于是我试着:

addr2line 0x779e81 -e MyBinary -b thesymbols.sym
但这就产生了抱怨:

addr2line: 'a.out': No such file
addr2line: MyBinary: Invalid bfd target
有人能把我的车开到正确的方向吗?我做错了什么

提前感谢您的帮助

编辑:

我现在意识到,当我认为我正在创建一个文件,其中只包含以下符号信息:

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


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

您可以将非压缩二进制文件与addr2line一起使用,其中地址是运行压缩二进制文件得到的。
地址与.text节的开头相对,该节在剥离二进制和非剥离二进制中都相同。

您找到解决方案了吗?