我正在尝试使用kgdb调试Linux内核。我使用qemu作为目标机器。 Ubuntu 12.04是我的主机操作系统。我试过这个命令KGDB远程调试错误
[email protected]:~$ qemu-system-arm -M versatilepb -m 128M -kernel zImage -initrd rootfs.img.gz -append "root=/dev/ram rdinit=/bin/sh kgdboc=ttyAMA0,115200 kgdbwait"
这将引导并等待显示
的kgdb:等待来自远程GDB
和连接,当我尝试使用Linux主机上的gdb调试使用命令
[email protected]: arm-none-linux-gnueabi-gdb vmlinux
(GDB):设置remotebaud 115200
(GDB)使用的/ dev/ttyS0来 忽略数据包错误,继续针对远程的/ dev/ttyS0来 远程调试......
警告:无法识别的项目 “超时” 的“qSupported” 响应
忽略数据包错误,继续......
忽略数据包错误,继续......
忽略数据包错误,继续...
忽略数据包错误,继续......
格式错误的响应,以抵消查询,超时
我没有真正得到我错过了什么!
P.S.我编译了启用KGDB选项的Linux内核2.6.39.4。我遵循指令在qemu上运行内核。
好的,谢谢。但是不能将我的qemu串口重定向到我的主机的ttyS0,以便我可以使用我的gdb中的/ dev/ttyS0。 – GeekFactory
我不明白:使用'/ dev/ttyS0'会增加什么值? – Balau
如果您想使用实际电缆连接到运行调试器的其他物理机,则只需将QEMU重定向到主机的/ dev/ttyS0。如果您只想从同一台机器进行调试,则可以在回送接口或unix域套接字上使用本地虚拟方法,如TCP。 –