저는 Linux 커널을 디버깅하기 위해 qemu와 gdb를 사용하고 있습니다. 다른 스레드가 계속 실행되는 동안 한 스레드를 중지하고 싶습니다. 목표를 달성하는 데 도움이 되는 non-stop이라는 명령이 gdb에 있다는 것을 발견했습니다. 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는 논스톱 모드를 지원하지 않는 것 같습니다. gdb 및 qemu에서 논스톱 모드를 활성화하기 위해 추가로 수행해야 할 작업이 있나요? 지원되지 않는 경우 다른 스레드가 gdb에서 계속 실행되도록 하면서 스레드를 중지하려면 어떻게 해야 합니까?