首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >KGDB远程调试错误

KGDB远程调试错误
EN

Stack Overflow用户
提问于 2012-12-06 16:43:51
回答 2查看 6.3K关注 0票数 3

我正在尝试使用kgdb调试Linux内核。我正在使用qemu作为目标机器。Ubuntu12.04是我的主机操作系统。我试过这个命令

代码语言:javascript
复制
cyborg@skynet:~$ 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进行调试时,使用以下命令

代码语言:javascript
复制
cyborg@skynet: arm-none-linux-gnueabi-gdb vmlinux

(gdb):设置远程端口115200

(gdb)目标远程/dev/ttyS0远程调试使用/dev/ttyS0忽略数据包错误,继续.

警告:"qSupported“响应中无法识别的项”超时值“

忽略数据包错误,继续.

忽略数据包错误,继续.

忽略数据包错误,继续.

忽略数据包错误,继续.

格式错误的对偏移量查询、超时的响应

,我没有真正得到我所缺少的东西!

在启用KGDB选项的情况下,我编译了linux内核2.6.39.4。我按照这些的指令在qemu上运行内核。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-06 22:45:04

如果在主机上引用/dev/ttyS0gdb将尝试使用当前的物理串口。您必须将qemu的模拟串口连接到gdb。阅读qemu手册,显然可以将模拟端口重定向到tcp网络,方法是将-serial tcp::1234,server添加到qemu命令行。在gdb中,您可以使用target remote :1234进行连接。

票数 3
EN

Stack Overflow用户

发布于 2012-12-07 12:54:03

在Qemu中运行时,没有真正的理由使用kgdb。您可以在Qemu命令行上指定类似于"-gdb tcp::8888“的内容,并激活GDB存根。然后,您可以用一个ARM感知的GDB连接到存根:

代码语言:javascript
复制
 target remote:8888

然后除错。您可能会发现以下gdb辅助脚本有用

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13748385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档