Backtrace已停止:在gdb android c项目期间,前一帧与此帧(腐败堆栈?)相同

时间:2012-06-13 07:24:31

标签: android linux android-ndk gdb gdbserver

我通过ndk构建了一个项目,但不幸的是,当它在android模拟器中运行时,它崩溃并出现以下提示:

[1] + Stopped (signal)        ./secfs secfs-client /data/fuse_dir /data/pwrite/test_11

然后,我跟着tutorial来调试我的项目,但它来到了Assembly文件。我理解大会文件并不容易。所以,我开始使用核心转储。 但是,当系统产生核心文件并且我试图用gdb读取核心文件时,它会提示以下内容并且gdb似乎无法使用它:

 Core was generated by `./secfs secfs-client /data/fuse_dir /data/pwrite/test_11'.
Program terminated with signal 11, Segmentation fault.
#0  0x4001e7f0 in ?? ()
(gdb) bt
#0  0x4001e7f0 in ?? ()
#1  0x4001fdfa in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

最后,我不知道接下来要做什么,有什么想法吗?感谢

1 个答案:

答案 0 :(得分:0)

使用(粗暴)力量。在您的代码中放置日志语句,并查看它停止的位置。通过这种方式,您可以了解导致SEGFAULT的代码部分是什么。多次运行应用程序,看看最后一个日志语句是什么。不要认为紧跟在最后一个日志语句之后的代码是违规代码。有时一些日志语句不会出现在日志中。我认为这是因为文本的内部缓冲。这就是你应该多次运行代码的原因。