qemuを使用してLinuxカーネルをデバッグするためにgdbのノンストップモードを使用する方法

qemuを使用してLinuxカーネルをデバッグするためにgdbのノンストップモードを使用する方法

私はLinuxカーネルをデバッグするためにqemuとgdbを使用しています。別のスレッドが実行され続けている間に、1つのスレッドを停止したいと思います。目標を達成するのに役立つ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で実行し続けながらスレッドを停止するにはどうすればよいですか?

ベストアンサー1

おすすめ記事