Im ARMv7
をターゲットマシンとして使用します。私はターゲットとしてLinuxソース2.6.34.13
をコンパイルしました。ARMでkgdbを使用するには?
ターゲットはminicomを使用してシリアルポート経由でホスト(Linux開発マシン)に接続されています。
ターゲットに新しいカーネルがロードされ、KGDBがコマンドプロンプトで有効になっています。
$ echo ttyAMA0 > /sys/module/kgdboc/parameters/kgdboc
$ echo g > /proc/sysrq-trigger
Entering KGDB ...というメッセージが表示され、コマンドを待っています。この後
ホスト側で、
$arm-none-linux-gnueabi-gdb vmlinux
gdb > set remotebaud 115200
gdb > set debug remote 1
gdb > target remote /dev/ttyS0
、いくつかのコマンド通信は、デフォルトで行われます。
qSupported
がホストからターゲットに送信されます。しかし、qSuppotedはターゲットによってサポートされていないので、$#00が返されます。同様に?
、HC-1
コマンドが送信されましたが、適切な応答が得られました。しかし、
qOffsets
コマンドは、ターゲットからの応答を受信しません。
私はvmlinuxと思われます。私はGDBにlist
を与えた場合、そのコードの10行が表示されないので代わりにそれは
arch/arm/kernel/head.S : No such file or directory.
注::カーネルのコンパイルはサーバーで行わ言います。開発マシンではソースが利用できません。しかし、arm-gdbは頭を探しているようです。
私は何をしているのかよく分かりません。私はカーネル全体のために読み込まれるシンボルが必要です。この点について私を案内してください。
わかりませんが、「ホスト」でコンパイルされたカーネルはデバッグに使用されていますか? &あなたは他の場所でコードを移動していないのですか? – anishsane
そのため、ソースを見つけることができないのはなぜですか? – anishsane
'kgdb'はソースコードを利用する必要がありますか?おそらく 'kgdb'にコードを探すように指示するコマンドラインオプションがあります。 – BenjiWiebe