您好我已完成以下内核调试步骤
/ configure --build = i786-pc-linux-gnu CC = gcc ARCH = arm --enable-verbose-usb-io --enable-verbose-usb-comms
请
在($ Projects)/xxx_projects/linux-2.6.39.4/.config
中相应地设置以下参数CONFIG_CONSOLE_POLL = Y CONFIG_KGDB = Y CONFIG_KGDB_SERIAL_CONSOLE = Y CONFIG_KGDB_TESTS = Y CONFIG_KGDB_TESTS_ON_BOOT = Y CONFIG_KGDB_TESTS_BOOT_STRING = “V1F100” CONFIG_KGDB_KDB = Y CONFIG_KDB_KEYBOARD = Y
在询问
时运行以下选项KGDB:内核调试器(KGDB)[Y / n /?] y KGDB:在串行控制台上使用kgdb(KGDB_SERIAL_CONSOLE)[Y / n / m /?](NEW)Y KGDB:内部测试套件(KGDB_TESTS)[N / y /?](NEW)y KGDB:在启动时运行测试(KGDB_TESTS_ON_BOOT)[N / y /?](NEW)y KGDB:运行哪个内部kgdb测试(KGDB_TESTS_BOOT_STRING)[V1F100](新) KGDB_KDB:包括kgdb的kdb前端(KGDB_KDB)[N / y /?](NEW)y KGDB_KDB:键盘作为输入设备(KDB_KEYBOARD)[N / y /?](NEW)y
复制新生成的图像
6a上。选择ttyS0作为板调试终端。在启动之前的终端上,电路板bootargs设置如下
$>> setenv bootargs'console = ttyS0,115200 root = / dev / ram0 rw kdgb = ttyS0,115200 kgdboc = ttyS0,115200N8 kgdbwait kgdbts ='
$>> saveenv
$>>靴 等待连接进行远程调试..
=== OR ===
6b。启动后也是这样。
-sh-3.2 #echo ttyS0> / sys / module / kgdboc / parameters / kgdboc kgdb:已注册的I / O驱动程序kgdboc。
-sh-3.2#sysctl -w kernel.sysrq = 1
kernel.sysrq = 1-sh-3.2 #echo g>的/ proc / sysrq的触发 SysRq:DEBUG KGDB或KDB的3#33#
一个。 ==> GDB
湾(gdb)文件vmlinux
℃。设置remotelogfile gdblog.txt
d。 (gdb)br sys_sync
即(gdb)设置debug serial 1
F。 (gdb)设置remotebaud 115200
克。 (gdb)设置debug remote 1
小时。 (gdb)target remote / dev / XXX1
对于linux主机使用虚拟框,我无法识别要连接的目标/ dev / xxx。
调试终端连接到服务器的ttyS0是否相同。
是否有任何命令我们可以在主机端看到串行终端号/端口
当我运行上述步骤时,我只能看到从客户端发送的一些序列包但没有来自gdb服务器的确认(板载)