我正在使用 qemu 和 gdb 来调试 Linux 内核。我想停止一个线程,同时让其他线程继续运行。我发现gdb中有一个叫做non-stop的命令可以帮助我实现我的目标。 gdb中不间断模式的详细信息如下所示https://sourceware.org/gdb/current/onlinedocs/gdb.html/Non_002dStop-Mode.html
这是我使用内核映像运行 qemu 的命令:
sudo qemu-system-x86_64 -smp 4 -m 8G
-drive if=ide,index=0,format=qcow2,file=./CentOS-7-x86_64-GenericCloud-2003.qcow2
-nographic -enable-kvm
-device e1000,netdev=net0 -netdev user,id=net0
-s -S
在另一个终端上,我运行“gdb vmlinux”。然后我按照教程所说的启用不间断模式:
(gdb) set target-async 1
(gdb) set non-stop on
(gdb) target remote:1234
Remote debugging using :1234
Non-stop mode requested, but the remote does not support non-stop.
看来qemu不支持non-stop模式。我需要做一些额外的事情才能在 gdb 和 qemu 中启用不间断模式吗?如果不支持,如何停止一个线程,同时让其他线程继续在 gdb 中运行?