基于动态二进制翻译优化的间接调试器设计.docVIP

基于动态二进制翻译优化的间接调试器设计.doc

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

基于动态二进制翻译优化的间接调试器设计 郭惠芳 摘要:在实现自主研发的系统级仿真平台时,为了提高系统仿真平台的运行效率使用了各种动态二进制翻译优化策略,而这些优化策略给间接调试器的各种功能实现带来了困难,另一方面,对于系统级程序的间接调试,调试时的实现效率也是需要考虑的,本文提出了在动态二进制翻译优化策略下各种基本调试功能的实现方法,基本不影响调试时运行效率的情况下,解决了时钟中断处理对单步调试的影响,实现了翻译代码缓存块中断点的判定。 关键词:动态二进制翻译;调试器;间接调试代理;翻译代码缓冲;翻译代码块链 The Design of Indirect Debugger Based on Dynamic Binary Translation and optimization GUO Hui-Fang, JIANG Lie-Hui, DONG Wei-Yu, HE Hong-Qi, CHANG Rui (PLA Information Engineering University, Zhengzhou Henan 450002 , China) 【Abstract】In order to improve the performance of the system emulator we designed by ourselves, We used some optimization methods of dynamic binary translation in our emulator. However, these optimization methods caused some implementation of indirect debugger functions difficult. In addition, it is important for a system emulator to realize an effective debugger. The paper presents an implementation of the basic debug function based the optimization of the dynamic binary translation. We remove the side-effect of time interrupt from the procedure of single step debugging and complete interruption determination in the translation code cache without conspicuous performance decline. 【Keywords】Dynamic binary translation; Debugger; Indirect debugging agency; Translation code cache; Translation code block chain 1. 引言 系统级仿真平台是在一个系统结构上用软件实现了另一个系统结构,并且在其上可运行另一个结构的操作系统及各种应用,前者称为宿主机,后者称为虚拟机或客户机。它在系统软件的调试、分析以及在异构结构上设计、调试软件等领域有着广泛的应用[1]。开发一个系统级仿真平台不仅需要本地的调试工具的支持,还需要有调试客户机上操作系统及应用程序的间接调试工具。它不仅在仿真平台的开发阶段用于发现仿真器本身的缺陷,而且也用于对仿真平台上运行的应用程序进行调试。 现有的基于动态二进制翻译技术的系统仿真器都提供了一定的调试支持,Tdb为动态翻译程序提供了一个源代码级调试器[2],Qemu实现了GDB的基本调试协议[3],Dynamo和DynamoRIO实现了一个底层调试支持[4],它们仅适用于它们自身的平台,大部分系统仅是应用级的仿真[5,6,7],部分系统仅支持源代码级的调试[2],或使用中间代码的结构实现[8,9],为了探索国产系统上系统级仿真器更为高效的实现方法,我们自主研发了一个由x86至一款国产CPU的系统级仿真器[10,11],在其上我们实现了基于各种动态二进制翻译优化策略的间接调试框架,为了兼顾运行效率和功能两方面的要求,在开发系统级仿真器的调试框架需要解决下面几个问题。 首先,通过什么机制使系统级仿真器能够在控制其上程序运行过程中去响应调试器的命令?其次,为了加快源代码向目标代码翻译的过程,我们实现了翻译的目标代码缓存机制,这种情况下如何实现断点的识别及控制?再者,对于系统级仿真器来说,时钟中断的处理程序也是通过动态翻译后执行的,这时如果需要使用单步调试客户机上的系统程序,如何避免

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档