下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PowerBuilder高级调试技术与技巧
摘要介绍PowerBuilder编程工具的高级调试技术,包括临时断点和条件断点设置、变量值改变断点设置、Just-in-time调试、中间层JaguarCTS组件的远程调试等关键技术关键词断点;本地调试;远程调试;Jaguar组件1引言PowerBuilder是数据库前端应用开发的主流编程工具,随着从Client/Server的两层开发模式到三层甚至多层开发模式的过渡,PowerBuilder不断增加新的功能以适应和推进这种转变。PowerBuilder7的版本已经可以通过开发Jaguar中间层组件创建典型的分布式应用。这就给PowerBuilder的调试技术提出新的要求。
调试技术在任何软件开发中都站有及其重要的位置。利用PowerBuilder开发也不例外。PowerBuilder工具集成了强大的调试画板,使得调试变得容易,但其中的一些高级的调试技巧和技术并不是很容易掌握,而掌握和使用这些调试的高级技巧和技术是开发高质量软件产品的重要保证,也是优秀的PowerBuilder开发者必须具备的能力。
PowerBuilder提供的高级调试技术主要包括:设置临时和条件断点、设置变量值改变断点、Just-in-time调试、Jaguar组件远程调试术(RemoteDebug)。前三种调试技巧适合于本地调试;最后一种是分布式应用中的调试技巧,可以在客户端对部署在应用服务端JaguarCTS(ComponentTransactionServer组件事务服务器简称)的组件进行调试,包括调试陷入到事件或者方法的脚本,观察和更改组件变量等。远程调试技术以本地调试为基础,是PowerBuilder做分布式开发的关键性技术,尽管与本地调试类同,但却又有其独特和复杂的一面,是做好PowerBuilder中间层组件开发的重要技术。当然,熟悉本地调试的各种技术细节,才能更好得进行远程调试。对于基本的调试技术(比如设置断点、单步执行、屏蔽和清楚断点、监视变量等)不再累述。2PowerBuilder7的调试画板简介调试画板集成了PowerBuilder强大的调试功能,包括以下主要的部分:1)BreakpointsView:展示所有要调试的对象、事件、代码行信息、通过它很容易定位到需要调试的代码或者进行断点使能和屏蔽等操作。2)CallstacksView:展示调试的断点在程序中调用的层次,返回时会按照这个压栈顺序返回。提供了程序执行的宏观线索。3)Instances:展示实例化的远程组件状态等信息。只适用于远程调试。4)ObjectsInMemory:展示加载到内存的对象列表。通过它可以观察对象在内存里的占用情况(不适用于远程调试)。5)SourceView:展示代码。6)SourceBrowser:展示应用中所有的对象列表。7)SourceHistory:展示在SourceView中曾经出现过的代码列表。8)VariablesView::展示所有类型的变量。可以在调试画板中人为修改变量值,或者设置在某个变量的值发生改变时中断程序而触发调试。9)WatchView:展示选择出来的变量值,进行表达式的运算等。3
本地调试3.1设置临时和条件断点对于一般的断点,可在SourceView中很容易得设置。如果断点处在循环体中,可能不期望每次循环都跳到调试画板,这时候需要设置临时和条件断点。断点在多少次循环后被触发,属于临时触发;断点在满足某种表达式条件后被触发,属于条件触发;在相同的断点位置可以同时存在临时和条件两种触发机制。打开对应的断点编辑弹出窗口(在BreakpointView和SourceView中都能打开),在Occurrence栏目填入一个整数,代表每循环多少次才触发这个断点;在Condition栏目填入一个表达式,比如ll_i=10,这样,在这个循环中,每次在变量ll_i=10这个条件满足时才触发断点。可同时设置临时和条件触发,这种情况下必须两者都满足才触发断点。当然条件触发也可以用于不属于循环性质的代码段里面。3.2设置变量值改变断点如果调试特别关心某个变量,关心这个变量的值在哪里改变了(比如由false变成true,由0变成非0等),这时可以设置变量值改变触发断点。方法是在Variables中选择要调试的变量,右键弹出菜单,选择BreakonChange,这样,每次这个变量的值发生改变,就会触发断点,能够方便观察哪些代码对这个变量进行了赋值操作,有利于对这个变量的变化轨迹进行跟踪。3.3Just-in-time调试当按正常模式而不是调试模式运行应用的时候,如果程序运行不正常,甚至报错,可能需要退出程序,重新打开调试画板,调试这个异常或者错误,比较麻烦;选择just-in-time模式,就能在遇到需要调试的时候,即时切换到调试模式。选择菜单Windows>SystemOptions…在弹出窗口中选中JustInTimeDebugging。在按正常模式运行程序时,只要切换到PowerBuilder窗口,就提示是否中断和调试程序,选择调试,会进入调试模式;如果出现系统错误,调试画板会自动弹出,让开发者进行调试,而不必特意选择调试模式。4远程调试4.1远程调试的条件和准备讨论了本地调试的一些技术和技巧后,转入远程调试方面。在远程调试中可以充分利用以上技术技巧。要进行远程调试首先要满足几个条件:被调试的组件是PowerBuilder部署的nvo(非可视化)类型,RemoteDebug(远程调试)选项是打开的;前者说明这种调试只局限于PB组件开发范畴,而不是其他类型的Jaguar组件,后者的满足要进入部署组件的工程对象画板,打开属性窗口,在components页框里看Supportsremotedebugging选项是否打开,没有的话就打开它。以上的条件满足之后,在组件脚本里面设置好断点。打开调试画板,在PainterBar工具栏按StartRemoteDebugging按钮,而不是通常调试本地应用的Start按钮,然后填写连接JaguarCTS组件服务器的信息,选中要调试的组件。这时候可等待客户端的程序调用该组件了。对于断点的设置,最好先打开组件对象,在需要调试的地方设置上断点,再进入调试画板,这样所设置的断点已经存在了,而不必再在SourceBrowser里面去找。4.2远程调试具体方法运行一个客户端程序,这个程序在另一个PowerBuilder中运行、或者是一个别的机器上的可执行程序,但都必须访问所调试JaguarCTS组件的方法和事件,这样才能触发刚才的远程调试,当客户端程序调用JaguarCTS的组件,并且运行到断点处(陷入到组件里面),刚才调试组件的PowerBuilder会在Windows任务栏中闪烁,提示用户可进行组件的远程调试了,切换到远程调试窗口,就能看到脚本和断点,调试方法与本地脚本调试基本相同,这时候需要充分利用前面所讨论的调试技术。打开菜单View>Instances,对于InstancesView,建议在远程调试阶段始终打开,这样能方便的切换对不同实例的调试,在InstancesView里能观察中间层组件实例的三个状态:running代表这个组件实例在运行;,idle代表实例是空闲的,它的存在只是等待客户对它的方法的陷入;stopped代表运行中止状态。三个状态中一般是看不到running状态的,因为当触发调试的时候,实例是停在断点处,看到的状态是stopped,当调用完方法(组件方法陷入完成后),实例状态转为idle,running状态由于陷入代码运行时间非常快,你无法观察到,除非你设定了某种循环让组件方法运行时间延长才能观察到如果有两个以上的客户端陷入到相同的组件中,会出现两个实例,它们对应相同的包和组件信息,但标号不同,由实例号1、2…标识出,而且它们的状态可能不同,有的是stopped,有的可能是idle。选择不同的instance,可以分别调试,尽管不同的实例可能对应相同的组件。5结束语
建议调试的时候把源码中的窗口置顶函数注释掉,如setposition(topmost!)之类的函数,否则会切换不到调试画板。远程调试比本地调
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在家宠物喂养协议书(2篇)
- 地摊租赁抽成合同(2篇)
- 汽车工厂消防施工合同
- 城市居民区排水沟建设合同
- 科技创新中心幕墙维修合同
- 饭店管理学院楼宇对讲施工合同
- 城市轻轨桥梁工程建桥合同
- 休闲度假村土地租赁合同乡镇
- 绿化景观建设房屋拆迁施工合同
- 汽车零部件加工场地租赁合同
- 德鲁克《创新与企业家精神》 课件
- 陕西省汉中市各县区乡镇行政村村庄村名居民村民委员会明细
- 工艺竖井开挖支护施工技术方案(清楚明了)
- 初中《合唱》校本课程
- 一元一次含参不等式教学设计83
- 100道凑十法练习习题(含答案)
- 牛仔面料成本核算
- 简单娱乐yy频道设计模板
- 健康体检的八大意义
- 销售顾问初级认证笔试题
- 市场化人才选聘管理办法
评论
0/150
提交评论