我正在为我的应用程序编写性能分析工具,并使用dladdr将函数指针转换为名称。只要一切正常工作作为即时通讯的调试,但只要我在释放编译(使用的XCode 5.1)的所有名称转换失败并返回NULL例如:在版本中使用dladdr
#include <dlfcn.h>
int main(int argc, char **argv)
{
Dl_info info;
if(dladdr(main, &info) != 0)
{ fprintf(stderr, "%s\n", info.dli_sname); }
我想,我传递给C多编译器标志/ C++标志:-export-dynamic -fPIC以及-Wl, - export-dynamic什么都不起作用......有没有一种方法可以继续编译优化并保留函数地址 - > dladdr的名称转换功能?
您是否尝试过加入-rdynamic作为一个连接器选项? – 2014-09-19 03:23:12
Arrgg ...就是这样!我试过-rdynamic,但我把它放在C/C++标志中,而不是连接器... – McBob 2014-09-19 03:40:00
这样做!我已经将我的信息作为正式答案。 – 2014-09-19 03:45:42