断点调试js

调试js  时间:2021-05-20  阅读:()

Vol.
14,No.
112003JournalofSoftware软件学报1000-9825/2003/14(11)1827一种具有快速条件断点的并行程序调试器刘建+,王皓,沈美明,郑纬民(清华大学计算机科学与技术系高性能计算技术研究所,北京100084)AParallelDebuggerwithFastConditionalBreakpointLIUJian+,WANGHao,SHENMei-Ming,ZHENGWei-Min(HighPerformanceComputingInstitute,DepartmentofComputerScienceandTechnology,TsinghuaUniversity,Beijing100084,China)+Correspondingauthor:Phn:86-10-62783505,Fax:86-10-62771138,E-mail:liujian98@mails.
tsinghua.
edu.
cnhttp://www.
hpc.
cs.
tsinghua.
edu.
cnReceived2002-09-25;Accepted2003-03-04LiuJ,WangH,ShenMM,ZhengWM.
Aparalleldebuggerwithfastconditionalbreakpoint.
JournalofSoftware,2003,14(11):1827~1833.
http://www.
jos.
org.
cn/1000-9825/14/1827.
htmAbstract:Afastconditionalbreakpointisconsideredtobeanessentialprocesscontrolcapabilityofadvancedhigh-performanceparalleldebuggers.
Inthispaper,thefundamentalprinciplesforfindingandimplementingfastconditionalbreakpointsareintroducedandthedesignproblemsassociatedwiththeirimplementationssuchascodegeneration,codeinstrumentationandsourceprogrammappingarediscussed.
Dynamiccodeinstrumentation,combinedwithhybridcodegenerationandsourcebreakpointidentification,providesawell-suitedsolutiontothoseproblems.
UsinganenhancedversionoftheDyninstrun-timecodepatchinglibrary,afastconditionalbreakpointinaparalleldebugger,XBUSTER,isimplemented.
ComparedwithGDBexperimentalresultsshowthatXBUSTERcandebugaprogramwithahigherefficiency.
Comparedwithotherfastconditionalbreakpointimplementationsbasedondynamicinstrumentationtechnique,XBUSTERismoreportableandfunctional.
Keywords:debugger;conditionalbreakpoint;dynamicinstrumentation;run-timecodepatching摘要:快速条件断点是高性能并行程序调试器中进程控制必备的功能之一.
分析了快速条件断点基本原理以及快速条件断点设计中需要考虑的代码生成、代码插装和源程序对应等问题.
并针对上述问题,提出了预编译与运行时编译结合的代码生成方式、动态代码插装、源断点标识技术等解决方案.
利用经过改进的动态补丁码工具Dyninst,设计实现了并行程序调试器XBUSTER,并实现了快速条件断点这一重要功能.
测试表明,XBUSTER的执行效率比传统条件断点高.
与现有的基于动态插装的系统,如Ceder,ldb和Dyner相比,XBUSTER具有功能性强、可移植性好等鲜明特点.
关键词:调试器;条件断点;动态插装;动态补丁码中图法分类号:TP311文献标识码:ASupportedbytheNationalNaturalScienceFoundationofChinaunderGrantNo.
69933020(国家自然科学基金)第一作者简介:刘建(1962-),男,湖北宜昌人,博士,高级工程师,主要研究领域为并行程序调试环境,IT项目管理.
1828JournalofSoftware软件学报2003,14(11)条件断点是一种常用的软件调试手段.
使用条件断点时,调试者选择被调试程序控制流中的某一点作为断点位置,提供一个布尔表达式作为断点条件,指定一系列操作作为断点动作.
当被调试程序执行到断点位置并且满足断点条件时,断点动作就会被执行,称为触发断点.
为了明确本文讨论的问题,有必要指出控制断点与数据断点的区别.
控制断点有固定的断点位置,只有在被调试程序执行到断点位置并且满足断点条件的情况下才会被触发.
数据断点没有固定的断点位置,在被调试程序执行过程中,一旦断点条件满足,就会被触发.
本文所讨论的条件断点是一种控制断点.
条件断点常用于检查程序在特定条件下的执行情况,特别适用于在多次循环中寻找满足特定条件的循环.
灵活使用条件断点可以提高调试效率,缩短调试时间.
在这种交互式调试中,快速条件断点可以加快被调试程序的执行速度,缩短调试时间.
条件断点还可用于程序性能测量,例如函数执行时间统计或者语句执行计数.
很多性能指标的测量都要用到条件断点.
这时,断点动作通常是修改计数器或计时器.
在这种非交互式调试中,我们希望条件断点的执行速度越快越好,因为程序性能测量中的一个关键问题就是减少测量代码对程序的干扰.
普通条件断点的执行速度太慢,不能满足性能测量的要求.
因此,快速条件断点在非交互式调试中同样具有很重要的意义.
并行程序具有不确定性,运行环境的干扰是造成并行程序不确定的主要原因,快速条件断点可以降低调试器对并行程序的干扰.
基于上述原因,快速条件断点被认为是高性能并行调试器必须具备的特性之一[1].
清华大学计算机科学与技术系高性能计算技术研究所建造了一个基于LINUX系统的高性能集群计算机系统.
针对并行调试的实际需要,我们实现了一个能够调试PVM或MPI程序、用户界面友好并具有较好移植性的并行程序调试器XBUSTER[2].
在XBUSTER中实现快速条件断点,既可以提高正确性调试的效率,又可以为性能测量打下基础.
1快速条件断点传统条件断点一般利用无条件断点实现:在断点位置设置一条无条件断点指令,当被调试程序执行到该指令时,产生操作系统陷入,控制转移到调试器,调试器检查断点条件,如果条件不满足,调试器就继续运行被调试程序;如果条件满足,调试器就执行断点动作.
从断点执行过程可以清楚地看到这一点:控制从被调试程序转移至调试器,需要一次进程切换.
如果断点条件不满足,恢复被调试程序的执行又需要一次进程切换.
调试器检查断点条件需要访问被调试程序的进程空间,这要通过操作系统提供的调试接口来完成,而这些接口通常是系统调用.
进程切换和系统调用的开销通常都很大,远远超过了检查断点条件和执行断点动作的开销,严重影响了断点的执行速度.
导致进程切换和系统调用的原因是断点条件代码在调试器中执行.
简单地说,快速条件断点的原理就是直接在被调试程序中执行断点代码.
在快速条件断点的执行过程中,由被调试程序中的代码检查断点条件,而不需要切换到调试器.
此外,检查代码可以直接存取被调试程序的数据,不需要通过操作系统调试接口.
仅当断点被触发而且断点动作要求唤醒调试器时,才会产生一次进程切换;如果断点动作不需要唤醒调试器,例如用于非交互式调试,则可以完全避免进程切换.
可见,采用快速条件断点的被调试程序可以在没有调试器干预的情况下运行,直到断点被触发.
因此,快速条件断点的执行速度远远快于传统条件断点.
快速条件断点的设计通常包括3个方面:代码生成(codegeneration)、插装(codeinstrumentation)和源程序对应(sourceprogrammapping).
本节将从以上3个方面,讨论快速条件断点设计的一般问题和实现技术,介绍并行调试器XBUSTER中快速条件断点的设计.
1.
1代码生成代码生成要解决两个问题,即断点描述和断点代码生成.
刘建等:一种具有快速条件断点的并行程序调试器1829断点描述包括断点条件描述和断点动作描述.
断点条件是一个布尔表达式,可以采用类似某种高级语言的布尔表达式来描述.
断点条件描述应该允许使用复杂的布尔表达式.
大多数断点动作可以用程序语句来描述.
此外,还应该提供对一些特殊断点动作的描述,例如:挂起被调试程序的执行,核心内存转储等等.

无忧云:服务器100G高防云服务器,bgpBGP云,洛阳BGP云服务器2核2G仅38.4元/月起

无忧云怎么样?无忧云值不值得购买?无忧云,无忧云是一家成立于2017年的老牌商家旗下的服务器销售品牌,现由深圳市云上无忧网络科技有限公司运营,是正规持证IDC/ISP/IRCS商家,主要销售国内、中国香港、国外服务器产品,线路有腾讯云国外线路、自营香港CN2线路等,都是中国大陆直连线路,非常适合免备案建站业务需求和各种负载较高的项目,同时国内服务器也有多个BGP以及高防节点。目前,四川雅安机房,4...

酷番云78元台湾精品CN2 2核 1G 60G SSD硬盘

酷番云怎么样?酷番云就不讲太多了,介绍过很多次,老牌商家完事,最近有不少小伙伴,一直问我台湾VPS,比较难找好的商家,台湾VPS本来就比较少,也介绍了不少商家,线路都不是很好,有些需求支持Windows是比较少的,这里我们就给大家测评下 酷番云的台湾VPS,支持多个版本Linux和Windows操作系统,提供了CN2线路,并且还是原生IP,更惊喜的是提供的是无限流量。有需求的可以试试。可以看到回程...

弘速云香港VPSVPS线路有CN2+BGP、CN2 GIA,KVM虚拟化架构,裸金属月付564元

弘速云怎么样?弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港vps、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统。点击进入:弘速云官方网站地址...

调试js为你推荐
支持ipad支持ipad127.0.0.1127.0.0.1打不开x-routerx-arcsinx的等价无穷小是什么?360chrome360Chrome 世界之窗极速浏览器 ChromePlus杀毒软件免费下载2013排行榜用什么免费杀毒软件最好苹果5.1.1越狱iphone5.1.1越狱老是越狱失败,说要抹掉数据,怎么抹掉数据不懂,接下来该怎么弄 求大神指教fastreport2.5pm10和pm2.5的区别,pm10和pm2.5哪个危害大bitchina现在哪个浏览器最好用?ios10.0.3小六升IOS11.0.3到底卡不卡,过来人给个建议
美国域名 域名查询系统 qq空间域名 域名备案只选云聚达 x3220 东莞电信局 主机测评网 webhosting 外国服务器 日志分析软件 全能主机 java空间 个人空间申请 免费网站申请 asp免费空间申请 100mbps web服务器搭建 太原联通测速 lamp的音标 免费个人网页 更多