


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、PowerBuilder高级调试技术与技巧 05-12-23 10:49:00 作者:佚名 编辑:studa9ngns摘要 介绍PowerBuilder编程工具的高级调试技术,包括临时断点和条件断点设置、变量值改变断点设置、Just-in-time调试、中间层Jaguar CTS组件的远程调试等关键技术关键词 断点;本地调试;远程调试;Jaguar组件1 引言PowerBuilder
2、是数据库前端应用开发的主流编程工具,随着从Client/Server的两层开发模式到三层甚至多层开发模式的过渡,PowerBuilder不断增加新的功能以适应和推进这种转变。PowerBuilder 7的版本已经可以通过开发Jaguar中间层组件创建典型的分布式应用。这就给PowerBuilder的调试技术提出新的要求。 调试技术在任何软件开发中都站有及其重要的位置。利用PowerBuilder开发也不例外。PowerBuilder工具集成了强大的调试画板,使得调试变得容易,但其中的一些高级的调试技巧和技术并不是很容易掌握,而掌握和使用这些调试的
3、高级技巧和技术是开发高质量软件产品的重要保证,也是优秀的PowerBuilder开发者必须具备的能力。 PowerBuilder提供的高级调试技术主要包括:设置临时和条件断点、设置变量值改变断点、Just-in-time调试、Jaguar组件远程调试术(Remote Debug)。前三种调试技巧适合于本地调试;最后一种是分布式应用中的调试技巧,可以在客户端对部署在应用服务端Jaguar CTS(Component Transaction Server组件事务服务器简称)的组件进行调试,包括调试陷入到事件或者方法的脚本,观察和更改组件变量等。远程调
4、试技术以本地调试为基础,是PowerBuilder做分布式开发的关键性技术,尽管与本地调试类同,但却又有其独特和复杂的一面,是做好PowerBuilder中间层组件开发的重要技术。当然,熟悉本地调试的各种技术细节,才能更好得进行远程调试。对于基本的调试技术(比如设置断点、单步执行、屏蔽和清楚断点、监视变量等)不再累述。2 PowerBuilder7的调试画板简介调试画板集成了PowerBuilder强大的调试功能,包括以下主要的部分:1)Breakpoints View:展示所有要调试的对象、事件、代码行信息、通过它很容易定位到需要调试的代码或者进行断点使能和屏蔽等操作。2)Cal
5、lstacks View:展示调试的断点在程序中调用的层次,返回时会按照这个压栈顺序返回。提供了程序执行的宏观线索。3)Instances:展示实例化的远程组件状态等信息。只适用于远程调试。4)Objects In Memory:展示加载到内存的对象列表。通过它可以观察对象在内存里的占用情况(不适用于远程调试)。5)Source View:展示代码。6)Source Browser:展示应用中所有的对象列表。7)Source History:展示在Source View中曾经出现过的代码列表。8)Variables View::展示所有类型的变量。可以在调试画板中人为修改变量值,或者设置在某个
6、变量的值发生改变时中断程序而触发调试。9)Watch View:展示选择出来的变量值,进行表达式的运算等。3 本地调试3.1设置临时和条件断点对于一般的断点,可在Source View中很容易得设置。如果断点处在循环体中,可能不期望每次循环都跳到调试画板,这时候需要设置临时和条件断点。断点在多少次循环后被触发,属于临时触发;断点在满足某种表达式条件后被触发,属于条件触发;在相同的断点位置可以同时存在临时和条件两种触发机制。打开对应的断点编辑弹出窗口(在Breakpoint View和Source View中都能打开),在Occurre
7、nce栏目填入一个整数,代表每循环多少次才触发这个断点;在Condition栏目填入一个表达式,比如ll_i = 10,这样,在这个循环中,每次在变量ll_i = 10这个条件满足时才触发断点。可同时设置临时和条件触发,这种情况下必须两者都满足才触发断点。当然条件触发也可以用于不属于循环性质的代码段里面。3.2设置变量值改变断点如果调试特别关心某个变量,关心这个变量的值在哪里改变了(比如由false变成true,由0变成非0等),这时可以设置变量值改变触发断点。方法是在Variables中选择要调试的变量,右键弹出菜单,选择Break on Change,这样,每次这个变量的值发生改变,就会触
8、发断点,能够方便观察哪些代码对这个变量进行了赋值操作,有利于对这个变量的变化轨迹进行跟踪。3.3Just-in-time调试当按正常模式而不是调试模式运行应用的时候,如果程序运行不正常,甚至报错,可能需要退出程序,重新打开调试画板,调试这个异常或者错误,比较麻烦;选择just-in-time模式,就能在遇到需要调试的时候,即时切换到调试模式。选择菜单Windows>System Options在弹出窗口中选中Just In Time Debugging。在按正常模式运行程序时,只要切换到PowerBuilder窗口,就提示是否中断和调试程序,选择调试,会进入调试模式;如果出现系统错误,调
9、试画板会自动弹出,让开发者进行调试,而不必特意选择调试模式。4 远程调试4.1远程调试的条件和准备讨论了本地调试的一些技术和技巧后,转入远程调试方面。在远程调试中可以充分利用以上技术技巧。要进行远程调试首先要满足几个条件:被调试的组件是PowerBuilder部署的nvo(非可视化)类型,Remote Debug(远程调试)选项是打开的;前者说明这种调试只局限于PB组件开发范畴,而不是其他类型的Jaguar组件,后者的满足要进入部署组件的工程对象画板,打开属性窗口,在components页框里看Supports remote debugging选项是否打开,没有的话就打开它。以上的
10、条件满足之后,在组件脚本里面设置好断点。打开调试画板,在PainterBar工具栏按Start Remote Debugging按钮,而不是通常调试本地应用的Start按钮,然后填写连接Jaguar CTS组件服务器的信息,选中要调试的组件。这时候可等待客户端的程序调用该组件了。对于断点的设置,最好先打开组件对象,在需要调试的地方设置上断点,再进入调试画板,这样所设置的断点已经存在了,而不必再在Source Browser里面去找。4.2远程调试具体方法运行一个客户端程序,这个程序在另一个PowerBuilder中运行、或者是一个别的机器上的可执行程序,但都必须访问所调试Jaguar CTS组
11、件的方法和事件,这样才能触发刚才的远程调试,当客户端程序调用Jaguar CTS的组件,并且运行到断点处(陷入到组件里面),刚才调试组件的PowerBuilder会在Windows任务栏中闪烁,提示用户可进行组件的远程调试了,切换到远程调试窗口,就能看到脚本和断点,调试方法与本地脚本调试基本相同,这时候需要充分利用前面所讨论的调试技术。打开菜单View>Instances,对于Instances View,建议在远程调试阶段始终打开,这样能方便的切换对不同实例的调试,在Instances View里能观察中间层组件实例的三个状态:running代表这个组件实例在运行;,idle代表实例是
12、空闲的,它的存在只是等待客户对它的方法的陷入;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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国柞木原木项目投资可行性研究报告
- 2025至2030年中国工业采矿业项目投资可行性研究报告
- 2025至2030年不锈钢卫生级由任行业深度研究报告
- 2025至2030年CDR音乐刻录机项目投资价值分析报告
- 组胚世鄂课件消化管(5+3)学习资料
- 2025年烤通脊项目可行性研究报告
- 美育融合发展行动方案
- 25年公司安全管理人员安全培训考试试题及答案高清版
- 25年公司级安全培训考试试题及答案【考点梳理】
- 25年公司管理人员安全培训考试试题【模拟题】
- 汽车涂装技术(陕西国防工业职业技术学院)智慧树知到答案章节测试2023年
- 受迫振动与共振实验课件
- 2023年中考中考语文专题复习:关联词 专项练习题(含答案解析)
- YS/T 248.1-2007粗铅化学分析方法 铅量的测定 Na2 EDTA滴定法
- 最后一只藏羚羊
- GB/T 3280-1992不锈钢冷轧钢板
- GB/T 29052-2012工业蒸汽锅炉节水降耗技术导则
- GB/T 1448-2005纤维增强塑料压缩性能试验方法
- 班组长报·联·商课件
- 《HSK标准教程3》第5课课件
- 《将进酒》课件23张
评论
0/150
提交评论