我从朋友那里得到了vmlinux.uimg
和vmlinux
。 vmlinux
是使用Linux 4.14.10版构建的。我有两台机器:
两个系统都用线连接,端口号分别为/dev/ttySAC3
和/dev/ttyUSB0
。通过从SD卡读取图像文件vmlinux.uimg
来启动目标。我想从我的主机上调试这个vmlinux
。
我遵循的步骤是:
类型
echo ttySAC3,115200 > /sys/module/kgdboc/parameters/kgdboc in minicom.
我得到" KGDB:已注册的I / O驱动程序kgdboc"。
类型
echo g >/proc/sysrq-trigger in minicom
我正在接受" sysrq DEBUG和进入KGDB"。
类型
gdb vmlinux
[注意:我使用的这个gdb是arm的7.10版本]
在GDB类型中
target remote /dev/ttyUSB0
它给我一条消息
Remote debugging using /dev/ttyUSB0 0xc0d14f5 in sysrq_dbg_op()
在GDB类型中
b do_mmap_pgoff
我收到了一条消息
breakpoint 1 at xxxx: do_map_pgoff (4 location)
在GDB类型中
cont
这给了我一条消息
Continuing.
然后什么都不做..
问题:
GDB continue
未按预期工作。我期待最后一步(9)继续目标重启并点击断点而不是崩溃。
GDB step
和next
未按预期工作。单步执行直到退出sysrq_dbg_op()
,没有行号信息。 "警告:无效的远程回复"。
GDB'运行'也没有用。它显示一条消息"远程目标不支持运行"
如何在目标上调用我已经放置断点的模块,因为我不能同时使用minicom和gdb。
冻结内核后我应该遵循的所有步骤。
这个过程有什么问题?