我需要通过addr2line(文件和行从回溯函数调用)从C ++程序中提供的信息。 是否有一个库调用类似addr2line?
编辑:我在Linux环境中工作。
我知道我可以直接调用addr2line,我知道我可以使用源代码 addr2line在我的节目(也GPL许可)。 但我想调用库函数,如果存在的话,是更清洁。
编辑:我会用的binutils BFD,就像addr2line一样。 这是什么意思BFD呢?
我需要通过addr2line(文件和行从回溯函数调用)从C ++程序中提供的信息。 是否有一个库调用类似addr2line?
编辑:我在Linux环境中工作。
我知道我可以直接调用addr2line,我知道我可以使用源代码 addr2line在我的节目(也GPL许可)。 但我想调用库函数,如果存在的话,是更清洁。
编辑:我会用的binutils BFD,就像addr2line一样。 这是什么意思BFD呢?
您可以尝试的功能dladdr()
它使用的程序,而不是调试信息(编译与该程序的动态符号gcc -rdynamic
)。
此外,您还可以检查回溯库或更高级别的堆栈跟踪库。
不完全是你问,但他们可能证明是有用的。
检查BSD实现addr2line的源代码,它只有400行代码。 源切换到一个库函数应该是很容易的。 http://sourceforge.net/apps/trac/elftoolchain/browser/trunk/addr2line/addr2line.c