我正在尝试在ARM上使用gdbserver调试软件以获取崩溃的回溯(backtrace)。不幸的是,我只得到了问号。无论哪里,我都读到这个问题仅与缺少符号相关,但我的库中没有剥离符号。
如果我尝试使用file命令在客户端加载符号,则会得到:
reading symbols from <path>/libQtWebKit.so.4.7.2...(no debugging symbols found)...done.
然后,当崩溃发生时:
Program received signal SIGSEGV, Segmentation fault.
0x00000000 in ?? ()
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x4bf38b88 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
我的库是在发行模式下编译的,但符号实际上存在。我可以通过nm找到它们。为什么我只得到问号?这只是因为库是使用优化编译的吗?不能在发行模式下调试库吗?