シリアル ttyS0 を介して 64 ビット Suse マシンから MIPS Linux ドライバーをデバッグしたいと考えています。使用されている gdb は、LAN 経由でアプリケーションのデバッグを行うとうまく機能しますが、シリアル経由の kgdb では機能しません。このページとその他のページを使用してデバッグを開始しましたが、最終結果はありませんでした。
私のカーネルは次の設定でコンパイルされています。
CONFIG_MAGIC_SYSRQ=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
# CONFIG_KGDB_TESTS is not set
CONFIG_CMDLINE="kgdboc=ttyS0,115200"
gdb を実行すると:
gdb vmlinux
(gdb) set remotebaud 115200
(gdb) set debug remote 1
(gdb) target remote /dev/ttyS0
次の出力を確認できます。
出力 (GDB_TERMINAL):
(gdb) target remote /dev/ttyS0
Remote debugging using /dev/ttyS0
Sending packet: $qSupported:qRelocInsn+#9a...Ack
Timeout in mid-packet, retrying
Timed out.
Timed out.
Ignoring packet error, continuing...
Packet qSupported (supported-packets) is supported
warning: unrecognized item "qSupported:qRelocIns" in "qSupported" response
Sending packet: $Hg0#df...Nak
Sending packet: $Hg0#df...Ack
Packet received: Hg0
Sending packet: $?#3f...Packet instead of Ack, ignoring it
Ack
Timed out.
Timed out.
Timed out.
Ignoring packet error, continuing...
Sending packet: $Hc-1#09...Nak
Sending packet: $Hc-1#09...Ack
Reply contains invalid hex digit 36
出力 (REMOTE_TARGET):
+$?#3f09n+#9a$Hg0#df+09
もう何も起こりません!!!
sysrq もテストしますが、前述の sysrq-option 'g' が適合しないようです!
echo b > /proc/sysrq-trigger
#successfully reboot
echo g > /proc/sysrq-trigger
#prints only the help message (SysRq : HELP : loglevel(0-9) reBoot Crash termin .....)
sysrq は正しく実行されていますか?
私が見逃したものはありますか?
リモートデバイスで実行中の kgdb をテストする方法はありますか?