是否有一个库调用addr2line? [关闭](Is there a library call

2019-06-26 10:02发布

我需要通过addr2line(文件和行从回溯函数调用)从C ++程序中提供的信息。 是否有一个库调用类似addr2line?

编辑:我在Linux环境中工作。

我知道我可以直接调用addr2line,我知道我可以使用源代码 addr2line在我的节目(也GPL许可)。 但我想调用库函数,如果存在的话,是更清洁。

编辑:我会用的binutils BFD,就像addr2line一样。 这是什么意思BFD呢?

Answer 1:

您可以尝试的功能dladdr() 它使用的程序,而不是调试信息(编译与该程序的动态符号gcc -rdynamic )。

此外,您还可以检查回溯库或更高级别的堆栈跟踪库。
不完全是你问,但他们可能证明是有用的。



Answer 2:

检查BSD实现addr2line的源代码,它只有400行代码。 源切换到一个库函数应该是很容易的。 http://sourceforge.net/apps/trac/elftoolchain/browser/trunk/addr2line/addr2line.c



文章来源: Is there a library call to addr2line? [closed]