ARMv7
ターゲットマシンとして使用しています。2.6.34.13
ターゲット用 の Linux ソースをコンパイルしました。
ターゲットは、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 を疑います。list
gdbで与えると、10行のコードが表示されず、代わりに
arch/arm/kernel/head.S : No such file or directory.
注 :: サーバーで実行されるカーネルのコンパイル。そのため、開発マシンで利用できるソースはありません。しかし、arm-gdb は head.S を探しているようです。
どんな間違いをしているのかわかりません。カーネル全体にシンボルをロードする必要があります。この点について私を導いてください。