我有以下问题:当我使用backtrace(3)函数在C中获得回溯时,返回的符号可以使用dwarf库和dladdr(3)轻松确定函数的名称.
问题是,如果我有一个简单的函数指针(例如通过传递它和函数),dladdr + dwarf函数就无济于事.似乎指针与backtrace(3)返回的指针不同(这并不奇怪,因为回溯直接从堆栈中获取这些函数指针).
我的问题是,是否有一些解决这些名称的方法?另外,我想确切地知道两个指针之间的区别.
谢谢!
更新:
指针之间的区别是非常重要的:
我得到的回溯是:0x8048ca4
直接指针版本:0x3ba838
在我看来,第二个需要一个偏移量.