Gdb没有抓到内核恐慌

时间:2015-10-23 09:22:06

标签: linux-kernel android-emulator gdb kernel qemu

我有一个ARM Linux内核作为android模拟器的一部分运行,我正在进行一些测试。我启动没有GUI内容的模拟器,只需使用adb shell访问模拟器的内部存储器。

我在OSX机器上启动模拟器,如下所示: -

$ emulator -verbose -debug init -show-kernel -kernel ./zImage -avd debug -no-boot-anim -no-skin -no-audio -no-window -qemu -gdb tcp::1234

我将gdb附加到模拟器,如下所示: -

$ arm-eabi-gdb ./vmlinux
(gdb) target remote :1234

我知道附件很有效,因为如果我之前附上调试器,我可以看到启动过程暂停,直到我按下" c"在gdb中。但是,当模拟器中出现内核恐慌时,我会在运行模拟器的终端上看到堆栈跟踪 - 但是,我没有看到gdb端的任何更改。当内核发生混乱时机器停止运行,因此我假设gdb会显示相同的指示。为什么不发生这种情况?

当我在模拟器端按Ctrl-C停止QEMU时,收到消息emulator: Done with QEMU main loop. emulator: User-config was not changed.,gdb显示Remote connection closed

我在这里失踪了什么?

1 个答案:

答案 0 :(得分:1)

在恐慌中设置断点并检查回溯是解决问题的可能方法。