我需要从 C++ 程序中获取 addr2line 提供的信息(源文件和回溯函数调用的行)。
我知道我可以直接调用 addr2line 作为子进程,我知道我可以复制 the source code of addr2line进入我的程序(这也是 GPL 许可的)。但是代码看起来很复杂,直接使用我感觉不舒服。 bfd
到底是什么意思?我更喜欢使用 C++ STL 库中的一些函数,因为这样会更简洁。
我在 Linux 环境中工作。
最佳答案
你可以试试dladdr()
函数。它使用程序的动态符号,而不是调试信息(使用 gcc -rdynamic
编译程序)。
另外,您可以查看backtrace库或更高级别 stacktrace图书馆。
不完全是您的要求,但它们可能会很有用。
关于c++ - 如何在我的 C++ 程序中访问 `addr2line` 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11556321/