我有时会得到这个奇怪的回溯:
(gdb) bt
#0 0x00002b36465a5d4c in AY16_Loop_M16 () from /opt/intel/mkl/10.0.3.020/lib/em64t/libmkl_mc.so
#1 0x00000000000021da in ?? ()
#2 0x00000000000021da in ?? ()
#3 0xbf3e9dec2f04aeff in ?? ()
#4 0xbf480541bd29306a in ?? ()
#5 0xbf3e6017955273e8 in ?? ()
#6 0xbf442b937c2c1f37 in ?? ()
#7 0x3f5580165832d744 in ?? ()
...
有什么想法为什么我看不到这些符号吗?当然是用调试符号编译的。
同一会话在其他点给出了符号。
The AY16_Loop_M16()
in libmkl_mc.so
最有可能是用汇编语言编写的,并且没有正确的展开描述符,这是 GDB 在 x86_64 上正确展开堆栈所必需的(在没有帧指针的情况下)。
您最好的选择是联系英特尔,并要求他们添加适当的展开描述符。
如果在开始时设置断点,可能会得到更好的结果AY16_Loop_M16
-- 如果它是从 C(或任何其他非汇编语言)调用的,那么您很可能会在入口处获得合理的堆栈跟踪。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)