基于嵌入式操作系统的GDB远程调试.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于嵌入式操作系统的GDB远程调试.pdf

基于嵌入式操作系统的GDB 远程调试 刘璐,马跃 北京邮电大学计算机网络中心(100876 ) E-mail :Liulu1020@163.com 摘 要:调试在软件开发的过程中必不可少。由于嵌入式系统自身资源的限制,系统不能运 行一个本地调试器,针对这个问题,本文介绍了基于嵌入式操作系统的GDB 远程调试技术, 介绍了GDB 远程串行通信协议,分析了GDB 远程调试技术的工作机制和gdbstub 文件。 关键词:GDB ,远程调试,gdbstub 1. 引言 调试是软件开发过程中必不可少的环节,随着软件开发规模的不断扩大,调试器在软件 开发过程中的作用也越来越重要。 嵌入式操作系统中,由于其自身通常没有足够的系统资源运行一个本地调试器,所以调 试器通常是运行在通用操作系统的应用程序,被调试的程序则运行于基于特定硬件平台的嵌 入式操作系统中。所以,在嵌入式操作系统中,开发人员需要通过一些硬件或者软件的手段 实现对嵌入式操作系统上目标代码的调试。通常,硬件调试工具的功能强大,如硬件仿真器, 但其价格昂贵;又如CPU 内部集成的调试模块,能监测CPU 内部的动作,但是其配套商业 软件同样昂贵[1] ;软件的调试方法虽不如硬件调试工具的功能强大,但是也已能胜任嵌入式 系统绝大部分的调试工作。所以,在对嵌入式系统的调试中,采用软件的方法,进行远程调 试不失为一种较好的选择。 远程调试是指调试器运行的环境(宿主机)与被调试的系统(目标机)在物理上分离, 宿主机和目标机通过串行接口或其它通信端口进行连接的技术。宿主机与目标机通过远程调 [2] 试协议进行通信,从而实现对目标机上程序的调试 。 2. GDB 远程调试 GDB (GNU Debugger )是遵循GPL (GNU Public Licence )的功能强大的免费调试工具。 GDB 可以调试C、C++、Pascal 、Fortran 、Java 等程序。它不仅可以对本地运行的程序进行 调试,还可以对远程系统中运行的程序进行调试,允许开发人员设置断点,单步执行,检查 内存,读写寄存器等。 2.1 工作原理 GDB 远程调试系统可分为硬件部分和软件部分两部分。 硬件部分包括宿主机和目标机。本地的是宿主机,远程被调试的是目标机,宿主机和目 标机通过串口或者以太口连接起来,以统一的远程串行通信协议进行通信,宿主机发送命令 给目标机,目标机接收并执行宿主机的命令。 软件部分,在宿主机上,由GDB 调试器通过target 命令完成与目标机建立连接的操作, 从而建立宿主机和目标机的逻辑连接,进而开始对目标机上应用程序进行调试。在目标机上, 需要实现一个调试插桩 gdbstub 文件,实际上,gdbstub 是嵌入式系统中的一段代码,它是 运行GDB 的宿主机和被调试程序进行交互的一个媒介,gdbstub 提供串口连接的协议,实现 GDB 远程串行通信协议,完成对协议的解析,实现与宿主机上GDB 的通信。 使用 GDB 进行远程调试时,运行在宿主机上的 GDB 与运行在目标机上的调试插桩 -1- gdbstub 通过串口连接,宿主机和目标机通过GDB 远程串行通信协议协同工作,从而实现对 目标机上应用程序的调试。这一方法的实质是用软件接管目标系统的全部异常处理 (exception handler )以及部分中断处理,在目标系统中插入调试端口通信模块 gdbstub , gdbstub 接管了目标操作系统的所有异常处理,与主机的调试器进行交互。 GDB 远程调试 结构如图1 所示。 远程通信协议(逻辑上的连接) 被调试程序

文档评论(0)

docinpfd + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档