我试图在代码中逐步打印回溯,用-g编译我的所有源代码,以及链接它,我还添加了fvisibility = internal。
但是当我调用符号列表时,我的所有代码都是:
module()[0x424b69]
为什么函数名称不会出现在大括号中,我应该添加其他可能的标志?
感谢。
答案 0 :(得分:1)
你应该使用
-rdynamic
类似的东西:
g++ -g -rdynamic main.cpp
来自http://gcc.gnu.org/onlinedocs/gcc/Link-Options.html:
-rdynamic
将标志-export-dynamic传递给支持它的目标上的ELF链接器。这指示链接器不仅添加所有符号 用过的,动态符号表。有些人需要这个选项 使用dlopen或允许从程序中获取回溯。