操作系统硬件调试器的设计与实现.pptVIP

  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文档。上传文档
查看更多
操作系统硬件调试器的设计与实现 张晔 2002年6月6日 内容摘要 本文将讨论基于硬件的操作系统调试器的设计与实现问题,共有5 部分: 背景介绍 系统设计与实现 当前实现情况 问题与改进措施 应用前景 背景介绍 本系统开发的初衷时为了支持项目小组的操作系统开发 各种计算机模拟器都有很大的弊端: 模拟速度很慢 无法与真正的计算机达成一致 模拟器的行为依赖于所处的操作系统 设计与实现 本段内容包括如下部分: 系统结构设计 面临的问题 问题的解决方案 系统结构设计 三层Client/Server结构: 面临的问题 TCP/IP网络通信 GDB远程调试协议 串行通信接口编程 执行控制机构设计与实现 TCP/IP网络通信 利用MFC提供的类CAsyncSocket实现,该类是Socket函数的封装,并使用了Windows编程的消息机制 该类的成员函数列表如下: GDB远程调试协议 远程调试概念:两台计算机,一台作为调试服务器,另一台作为调试客户机, 构成Client/Server模型。调试客户机向调试服务器发送基本调试命令,调试服务器回送命令执行结果。 GDB远程调试协议:调试服务器与调试客户机之间用于交换信息的程规。其一般形式为: { [+] [ $ [ Command|Result ] # checksum ] } | {-} 协议中定义的基本命令分为如下几类: 存储器访问类命令 寄存器访问类命令 程序执行控制类命令 各种命令形式及其返回形式如下表所示: 串行通信接口编程 本调试系统中使用的串行通信接口是标准的8250UART(通用异步接收/发送器),现在计算机上的串行通信接口都是与8250完全兼容的 一般串行通信模型: 串行通信接口编程 直接写端口方式 Windows API方式 执行控制机构 描述 执行控制机构负责最终的调试命令的执行,可以被看作调试器的内核。它接收基本调试命令,并将结果返回 问题与解决方案 执行控制机构的位置 对于i386体系结构的计算机,由于提供了对单步和断点功能的支持,所以执行控制机构放在1号(单步中断)和3号(断点中断)中断的处理函数中。 断点的实现策略 调试器自动将断点处的指令替换为“int 3”指令,所以执行控制机构无需作特殊处理。 单步实现策略 对于i386体系结构的计算机,通过设置其标志寄存器中的TF位(第8位)来实现。 目前实现情况 系统效果 下表中给出本调试系统与模拟器在某些性能上的大致对比。其中的数值都是以量级表示。 源程序说明 在源程序包的目录下包括两个目录:DebugServer与KernelDebugger。DebugServer目录包含有调试服务器的实现代码,而KernelDebugger包含有执行控制机构的实现代码。更详细的说明请参见论文描述。 尚存问题与改进 串口的通信速度较慢(但还可以接受),以至于影响了调试速度; 解决方案: 将串口改为并口或采用网络通信。 调试器无法真正完全控制被调试的操作系统,一些调试器理应具有的功能未能实现; 解决方案: 加入“微型操作系统”。 一次只能由一个调试者进行调试,调试效率低; 解决方案 加入“微型操作系统”。 应用前景 提供对操作系统的硬件级调试 提供对各种底层软件(如驱动程序等)的硬件级调试 作为熟悉操作系统以及其调试方法的教学 参考资料 《Visual C++ 6.0网络编程技术》 雷斌等 人民邮电出版社 《UNIX环境高级编程》 W.Richard Stevens 机械工业出版社 《串行通信开发指南》 Mark Nelson 中国水利水电出版社 《Embedding with GNU:The gdb Remote Serial Protocol》 Bill Gatliff 衷心感谢所有在这个过程中帮助过我的人们。 首先要感谢龚育昌教授给予我这个写论文的机会; 其次,最要感谢的是李宏博士,本文的设计源于他的构思,整个系统的设计与实现过程也是由他指导; 最后,还要感谢吴明乔博士、陈香兰博士等,他们在整个过程中提供了各种帮助与支持。 * * 计算机 调试服务器 计算机 串行通信 远程调试器1 远程调试器2 远程调试器3 计算机 远程调试协议 远程调试协议 调试者 调试者 调试者 被调试的操作系统内核 执行控制机构 函数名作用 函数名作用 CAsyncSocket构造函数 CAsyncSocket构造函数 Create创建一个Socket Create创建一个Socket Accept接受连接请求 Accept接受连接请求 Close关闭连接 Close关闭连接 Listen监听连接请求 Listen监听

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档