从backtrace_symbols收到的c ++符号在g ++中不显示函数

时间:2015-07-09 07:25:05

标签: c++ linux gcc g++ backtrace

我试图在代码中逐步打印回溯,用-g编译我的所有源代码,以及链接它,我还添加了fvisibility = internal。

但是当我调用符号列表时,我的所有代码都是:

module()[0x424b69]

为什么函数名称不会出现在大括号中,我应该添加其他可能的标志?

感谢。

1 个答案:

答案 0 :(得分:1)

你应该使用

-rdynamic

类似的东西:

g++ -g -rdynamic main.cpp

来自http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html

  

-rdynamic
      将标志-export-dynamic传递给支持它的目标上的ELF链接器。这指示链接器不仅添加所有符号   用过的,动态符号表。有些人需要这个选项   使用dlopen或允许从程序中获取回溯