GDB远程调试.pdf

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GDB远程调试

嵌入式Linux 的GDB 远程调试的实现 作者:李 权 李彦明 厉 磊 远程调试环境由宿主机GDB 和目标机调试stub 共同构成,两者通过串口或TCP 连接。 使用GDB 标准远程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调 试功能。调试stub 是嵌入式系统中的一段代码,作为宿主机GDB 和目标机调试程序间的一 个媒介而存在。 就目前而言,嵌入式 Linux 系统中,主要有三种远程调试方法,分别适用于不同场合 的调试工作:用ROM Monitor 调试目标机程序、用KGDB 调试系统内核和用gdbserver 调 试用户空间程序。这三种调试方法的区别主要在于,目标机远程调试 stub 的存在形式的不 同,而其设计思路和实现方法则是大致相同的。 而我们最常用的是调试应用程序。就是采用gdb+gdbserver 的方式进行调试。在很多情 况下,用户需要对一个应用程序进行反复调试,特别是复杂的程序。采用GDB 方法调试, 由于嵌入式系统资源有限性,一般不能直接在目标系统上进行调试,通常采用gdb+gdbserver 的方式进行调试。Gdbserver 在目标系统中运行,gdb 则在宿主机上运行。 要进行GDB 调试,目标系统必须包括gdbserver 程序,宿主机也必须安装gdb 程序。 一般 linux 发行版中都有一个可以运行的 gdb,但开发人员不能直接使用该发行版中的gdb 来做远程调试,而要获取 gdb 的源代码包,针对arm 平台作一个简单配置,重新编译得到 相应gdb 。 gdb 的源代码包可以从http: //.tw/Linux/sourceware/gdb/releases/下载,我们选 择的版本为gdb-6.4 。下载到某个目录,我下载到自己的用户目录:/home/lilei(在home 中通 过mkdir 命令建立自己的文件夹) 。 下载完后,进入/home/ lilei 目录,配置编译步骤如下: #tar jxvf gdb-6.4.tar.bz2 #cd gdb-6.4 #./configure --target=arm-linux --prefix=/usr/local/arm-gdbar -v #make (注意:target 是你的目标板,我的是arm-linux,prefix 是你要安装的目标文件夹。这 1 一步的时候可能会有问题,提示一个函数中(具体函数名不记得了)parse error ,就是unsigned 前边多了一个”}”,你用vi 进入那一行把它删掉就行了。) #make install #export PATH=$PATH:/usr/local/arm-gdb 进入gdbserver 目录: #./configure --target=arm-linux –host=arm-linux #make CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc (注意:这一步是在make CC=后指定交叉编译环境arm-linux-gcc 的位置,如果在编译 arm-linux-low.c 这个文件时提示找不到“sys/reg.h”,那就用vi 命令进去,将头文件#include “sys/reg.h ”注释掉就可以了) 没有错误的话就在gdbserver 目录下生成gdbserver 可执行文件,把它烧写到flash 的根 文件系统分区,或通过nfs mount 的方式都可以。只要保证gdbserver 能在开发板上运行就行。 我们是用nfs mount 的方式映射到flash 的根文件系统分区的,具体步骤如下: 1、首先在pc 机上修改/etc/export 文件,在里面写入“/* ”,这就表示可以和任意的板子 连接。 2 、打开两个终端,在一个终端下启动nfs 调试环境,输入“#service nfs restart ”回车。 等调试环境启动后设置宿主机的ip (即pc 机)命令如下: #Ifconfig eth0 1 up 回车,这样宿主机的ip 就设好了。 3、在另一个终端下用minicom 命

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档