- 88
- 0
- 约1.22万字
- 约 4页
- 2017-05-27 发布于河南
- 举报
GDBstub的剖析与改进
刮睛譬黼希·应用系统
GDBstub昀剖析与改进
黄红燕,史烈
(浙江大学计算机系统工程研究所,浙江杭州310027)
改操作系统内核前提下调试应用程序的方法。这种方法可移植性强,而且消除了修改系统内核可能
带来的隐患,减少了因修改内核而带来的工作量,在调试微内核操作系统服务的应用中非常有效。
GDBseⅣer
关键词:远程调试stub KGDB嵌入式系统调试
调试是开发过程中必不可少的环节,然而内核、嵌
入式系统的调试不同于传统的调试系统。通常嵌入式系 的单字节校验码。接收方接收数据并校验,若正确则回
统不具备使用本地调试器的能力,原因如下: 应“+”,否则回应“一”。通信的内容包括读写数据、控制
(1)系统自身的资源有限,内存小,输入输出设备不 程序运行、报告程序状态等命令。RSP的基本命令从通
能用于调试。 信对话角度可以分为两种:
(2)传统的调试系统需要文件系统,而嵌入式系统通 (1)请求
常无文件系统,内核调试时还不支持文件系统。 ?:读当前系统状态
(3)调试器的运行本身需要操作系统的支持,因此无 g:读所有寄存器
法实现操作系统内核的调试。 Gre西steI■ata:写所有寄存器
最有效的解决方法是采用远程调试技术。远程调试 maddress,1engtll:读内存
是指调试器运行的环境(主机)与被调试的系统(目标
机)在物理上是分离的、通过串口或者网络进行连接的 c:继续执行
调试技术。 s:单步执行
GNU免费提供的GDB拥有强大的远程调试功能, k:终止进程
它能够使开发人员以远程调试的方式单步执行目标平 f2)答复
台上的程序代码、设置断点、查看内存,并与目标平台交 “”:告诉GDB上次请求命令不支持。
换信息。GDB远程调试的实时、动态、方便、免费等优 E:告诉GDB出错
点,使它逐渐成为嵌入式开发首选的调试方案。 OK:上次请求正确
远程调试系统由三部分组成:主机上的本地调试
器、目标机上的调试代理、远程调试协议,如图1所示。 XsigIlal:系统在sigIlal信号下终止。
对应GDB远程调试系统的三部分为:GDB、GDBstub、
Ssi印al:系统在sigllal信号下停止。
GDB远程串行协议。下面就这三部分进行分析。
的命令。
2GDB远程调试功能
调试内核时通常还没有文件系统,而且多数嵌入式
量 系统由于自身资源的限制不具备文件系统,因此将与文
件系统有关的源文件、目标文件及符号表都存放在主机
图1远程调试系统 上,由主机上的调试器处理。同样,调试用的输入输出设
1 RSP协议 备也是由主机提供。主机上的调试器接收用户输入的调
GDB Serial
RSP(RemotePmtoc01)定义了GDB宿主机
与被调试目标机进行通信时数据包的格式。信息的格式 处理在主机GDB上实现,不需要与目标机通信。当然,
是:$数据#校验码。多数信息使用ASCII
原创力文档

文档评论(0)