2017-08-03 17 views
1

QEMUとgdbを使ってLinuxカーネルをデバッグする方法を知りたいと思います。私は自分のVMに新しいkernel linux-3.18.6をコンパイルしました。私のVM環境はcentosで、カーネルバージョンは3.10.0-327.el7.x86_64です。新しいカーネルを実行するには、 "qemu-system-x86_64 -kernel /usr/src/linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S"というコマンドを使用します。次に、別のシェルウィンドウを使って "gdb ./vmlinux"を実行します。これまではすべてがうまくいきました。しかし、私が "target remote localhost:1234"を入力し続けると、それはいくつかの奇妙なメッセージを出力します。このようにQEMUnとGDBを使ってカーネルをデバッグする方法

(gdb) target remote localhost:1234 

Remote debugging using localhost:1234 

Remote 'g' packet reply is too long: 

00000000000000000000000000000000000000000000000063060000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
0000000000000000f0ff0000000000000200000000f0000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000007f0300000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
00000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000000000000000000000801f0000 

(gdb) c 

The program is not being run. 

次に、「c」と入力します。 「プログラムが実行されていません」と表示されます。私はこの問題によって数日間混乱してきました。誰でも私にそれを修正し、プログラムを実行させる手助けをすることができます。どうもありがとう。

+0

この問題についても同様のバグレポートがあります:https://sourceware.org/bugzilla/show_bug.cgi?id=13984バグ報告に添付されたパッチを適用し、gdbを再構築することができます。 – ks1322

+0

ありがとうございました。わたしにはできる ! – Jerry

答えて

1

これはgdb bug 13984です。このバグを解決するpatchが添付されています。

関連する問題