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

盘点AoYoZhuJi傲游主机商8个数据中心常见方案及八折优惠

傲游主机商我们可能很多人并不陌生,实际上这个商家早年也就是个人主机商,传说是有几个个人投资创办的,不过能坚持到现在也算不错,毕竟有早年的用户积累正常情况上还是能延续的。如果是新服务商这几年确实不是特别容易,问到几个老牌的个人服务商很多都是早年的用户积累客户群。傲游主机目前有提供XEN和KVM架构的云服务器,不少还是亚洲CN2优化节点,目前数据中心包括中国香港、韩国、德国、荷兰和美国等多个地区的CN...

CheapWindowsVPS$4.5/月,美国VPS/免费Windows系统/1Gbps不限流量/,可选美洲、欧洲、亚洲等8大机房

国外商家提供Windows系统的并不常见,CheapWindowsVPS 此次提供的 2 款 VPS 促销套餐,提供 5 折永久优惠码,优惠后月付 4.5 美元起,价格还是挺诱人的,VPS 不限流量,接入 1Gbps 带宽,8 个机房皆可选,其中洛杉矶机房还提供亚洲优化网络供选择,操作系统有 Windows 10 专业版、2012 R2、2016、Linux等。Cheap Windows VPS是...

易探云:香港大带宽/大内存物理机服务器550元;20Mbps带宽!三网BGP线路

易探云怎么样?易探云隶属于纯乐电商旗下网络服务品牌,香港NTT Communications合作伙伴,YiTanCloud Limited旗下合作云计算品牌,数十年云计算行业经验。发展至今,我们已凝聚起港内领先的开发和运维团队,积累起4年市场服务经验,提供电话热线/在线咨询/服务单系统等多种沟通渠道,7*24不间断服务,3分钟快速响应。目前,易探云提供香港大带宽20Mbps、16G DDR3内存、...

调试js为你推荐
Telewizjamedia动设备管理解决支持ipadgetIntjava更新iphonewin7telnet怎样在win7下打开telnet 命令win7关闭135端口win7系统 怎么关闭135 445 端口 修改注册表 创建IP安全策略 也试过 就是关不了 还望高手指教micromediamacromedia的中文名micromediamacromedia FreeHand MX是干什么用的?micromediawww.macromedia.com 是什么网站
godaddy主机 国外服务器网站 搜狗抢票助手 圣诞节促销 大容量存储 太原联通测速平台 毫秒英文 建立邮箱 国外代理服务器地址 phpmyadmin配置 qq对话框 四核服务器 常州联通宽带 七夕快乐英语 服务器维护 监控服务器 免费php空间 大化网 卡巴斯基试用版下载 杭州电信 更多