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

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

ID:50477235

大小:168.00 KB

页数:6页

时间:2020-03-09

基于动态二进制翻译优化的间接调试器设计.doc_第1页
基于动态二进制翻译优化的间接调试器设计.doc_第2页
基于动态二进制翻译优化的间接调试器设计.doc_第3页
基于动态二进制翻译优化的间接调试器设计.doc_第4页
基于动态二进制翻译优化的间接调试器设计.doc_第5页
资源描述:

《基于动态二进制翻译优化的间接调试器设计.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于动态二进制翻译优化的间接调试器设计郭惠芳摘要:在实现自主研发的系统级仿真平台时,为了提高系统仿真平台的运行效率使用了各种动态二进制翻译优化策略,而这些优化策略给间接调试器的各种功能实现带来了困难,另一方面,对于系统级程序的间接调试,调试时的实现效率也是需要考虑的,本文提出了在动态二进制翻译优化策略下各种基本调试功能的实现方法,基本不影响调试时运行效率的情况下,解决了时钟中断处理对单步调试的影响,实现了翻译代码缓存块中断点的判定。关键词:动态二进制翻译;调试器;间接调试代理;翻译代码缓冲;翻译代码块链TheDesignofIndirectDebugg

2、erBasedonDynamicBinaryTranslationandoptimizationGUOHui-Fang,JIANGLie-Hui,DONGWei-Yu,HEHong-Qi,CHANGRui(PLAInformationEngineeringUniversity,ZhengzhouHenan450002,China)【Abstract】Inordertoimprovetheperformanceofthesystememulatorwedesignedbyourselves,Weusedsomeoptimizationmethodsofd

3、ynamicbinarytranslationinouremulator.However,theseoptimizationmethodscausedsomeimplementationofindirectdebuggerfunctionsdifficult.Inaddition,itisimportantforasystememulatortorealizeaneffectivedebugger.Thepaperpresentsanimplementationofthebasicdebugfunctionbasedtheoptimizationoft

4、hedynamicbinarytranslation.Weremovetheside-effectoftimeinterruptfromtheprocedureofsinglestepdebuggingandcompleteinterruptiondeterminationinthetranslationcodecachewithoutconspicuousperformancedecline.【Keywords】Dynamicbinarytranslation;Debugger;Indirectdebuggingagency;Translationc

5、odecache;Translationcodeblockchain1.引言系统级仿真平台是在一个系统结构上用软件实现了另一个系统结构,并且在其上可运行另一个结构的操作系统及各种应用,前者称为宿主机,后者称为虚拟机或客户机。它在系统软件的调试、分析以及在异构结构上设计、调试软件等领域有着广泛的应用[1]。开发一个系统级仿真平台不仅需要本地的调试工具的支持,还需要有调试客户机上操作系统及应用程序的间接调试工具。它不仅在仿真平台的开发阶段用于发现仿真器本身的缺陷,而且也用于对仿真平台上运行的应用程序进行调试。现有的基于动态二进制翻译技术的系统仿真器都提供了

6、一定的调试支持,Tdb为动态翻译程序提供了一个源代码级调试器[2],Qemu实现了GDB的基本调试协议[3],Dynamo和DynamoRIO实现了一个底层调试支持[4],它们仅适用于它们自身的平台,大部分系统仅是应用级的仿真[5,6,7],部分系统仅支持源代码级的调试[2],或使用中间代码的结构实现[8,9],为了探索国产系统上系统级仿真器更为高效的实现方法,我们自主研发了一个由x86至一款国产CPU的系统级仿真器[10,11],在其上我们实现了基于各种动态二进制翻译优化策略的间接调试框架,为了兼顾运行效率和功能两方面的要求,在开发系统级仿真器的调试

7、框架需要解决下面几个问题。首先,通过什么机制使系统级仿真器能够在控制其上程序运行过程中去响应调试器的命令?其次,为了加快源代码向目标代码翻译的过程,我们实现了翻译的目标代码缓存机制,这种情况下如何实现断点的识别及控制?再者,对于系统级仿真器来说,时钟中断的处理程序也是通过动态翻译后执行的,这时如果需要使用单步调试客户机上的系统程序,如何避免进入时钟中断处理程序的单步执行?最后,如果使用块链优化技术后,如何处理断点的检查?2.动态二进制翻译器的实现机制我们的系统级仿真器由初始化、动态二进制翻译器、内存虚拟化及I/O仿真等四部分组成。其中动态二进制翻译器部

8、分与间接调试代理的设计相关,下面简要介绍这部分的实现机制。它以基本块为翻译单位,支持翻译代码缓

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。