断点调试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断点描述包括断点条件描述和断点动作描述.
断点条件是一个布尔表达式,可以采用类似某种高级语言的布尔表达式来描述.
断点条件描述应该允许使用复杂的布尔表达式.
大多数断点动作可以用程序语句来描述.
此外,还应该提供对一些特殊断点动作的描述,例如:挂起被调试程序的执行,核心内存转储等等.

Hostiger 16G大内存特价VPS:伊斯坦布尔机房,1核50G SSD硬盘200Mbps带宽不限流量$59/年

国外主机测评昨天接到Hostigger(现Hostiger)商家邮件推送,称其又推出了一款特价大内存VPS,机房位于土耳其的亚欧交界城市伊斯坦布尔,核50G SSD硬盘200Mbps带宽不限月流量只要$59/年。 最近一次分享的促销信息还是5月底,当时商家推出的是同机房同配置的大内存VPS,价格是$59.99/年,不过内存只有10G,虽然同样是大内存,但想必这次商家给出16G,价格却是$59/年,...

TTcloud(月$70)E3-1270V3 8GB内存 10Mbps带宽 ,日本独立服务器

关于TTCLOUD服务商在今年初的时候有介绍过一次,而且对于他们家的美国圣何塞服务器有过简单的测评,这个服务商主要是提供独立服务器业务的。目前托管硬件已经达到5000台服务器或节点,主要经营圣何塞,洛杉矶以及日本东京三个地区的数据中心业务。这次看到商家有推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。内存CPU硬盘流量带宽价...

数脉科技:阿里云香港CN2线路服务器;E3-1230v2/16G/240G SSD/10Mbps/3IP,月付374元

数脉科技怎么样?昨天看到数脉科技发布了7月优惠,如果你想购买香港服务器,可以看看他家的产品,性价比还是非常高的。数脉科技对香港自营机房的香港服务器进行超低价促销,可选择10M、30M的优质bgp网络。目前商家有优质BGP、CN2、阿里云线路,国内用户用来做站非常不错,目前E3/16GB阿里云CN2线路的套餐有一个立减400元的优惠,有需要的朋友可以看看。点击进入:数脉科技商家官方网站香港特价阿里云...

调试js为你推荐
css3圆角在HTML里如何实现圆角矩形?phpechophp echo函数 是什么意思google分析怎样学会使用谷歌分析? 我自己想往网站分析走。杀毒软件免费下载2013排行榜用什么免费杀毒软件最好morphvoxpro教程哪位大佬可以帮忙调一下morphvox pro的女声啊,我调了一天还是没调明白搜狗拼音输入法4.3搜狗拼音输入法4.3正式版怎样变换繁体字webmessengermsn手机版下载官方免费客户端下载指数ios6飞行器ios6模块ios5
n点虚拟主机管理系统 百度云100as 双12活动 网站被封 网盘申请 150邮箱 美国在线代理服务器 服务器硬件防火墙 双线机房 网购分享 带宽租赁 国外在线代理服务器 后门 认证机构 web服务器有哪些 服务器操作系统 低价 电脑主机打不开 xendesktop qq空间技术网 更多