Android设备在gdbserver连接到任何进程后重新启动
我目前正在尝试从usb接口在旧的Android设备(Android 2.2,内核2.6.32)上使用ndk gdb进行一些调试工作。每次Android设备在gdbserver连接到任何进程后重新启动,android,android-ndk,linux-kernel,gdb,Android,Android Ndk,Linux Kernel,Gdb,我目前正在尝试从usb接口在旧的Android设备(Android 2.2,内核2.6.32)上使用ndk gdb进行一些调试工作。每次gdbserver附加任何进程时,设备都会重新启动,如下所示: sh-3.2# lib/gdbserver --debug :9999 --attach 479 lib/gdbserver --debug :9999 --attach 479 sigchld_handler Attached; pid = 479 linux_wait: [Pro
gdbserver
附加任何进程时,设备都会重新启动,如下所示:
sh-3.2# lib/gdbserver --debug :9999 --attach 479
lib/gdbserver --debug :9999 --attach 479
sigchld_handler
Attached; pid = 479
linux_wait: [Process 479]
linux_wait_for_lwp: <all threads>
my_waitpid (-1, 0x40000000)
my_waitpid (-1, 0x1): status(137f), 479
Got an event from 479 (137f)
它们相关吗?谢谢。现在找到答案了。
该设备使用旧的cpu MSM7225,它没有VFP,但内核内置了VFP。
当gdbserver附加某些进程时,它将尝试在设备中获取一些寄存器集。检索不存在的VFP寄存器时,系统将重新启动。
解决方案:注释掉对内核配置的VFP支持。
现在ndk gdb工作了
#CONFIG_MSM_SERIAL_DEBUGGER is not set
CONFIG_MSM_RPCSERVER_WATCHDOG=y