PowerBuilder程序设计教程第11章

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第11章应用的调试和发行对应用程序的开发来说,错误再所难免,调试步骤必不可少。调试的目的是努力发现并改正错误,使程序能更好地运行。11.1应用程序的调试PowerBuilder提供了两种运行应用程序的方式:调试方式(DebugMode)和常规方式(RegularMode)。在调试方式中,可在脚本和函数中插入断点或进行代码的单步执行,并且可以显示执行过程中变量的值,以便找出逻辑错误。在常规方式中,应用程序响应用户的交互操作直到用户中止运行或发生错误为止。这也是运行完整的应用程序的方式。调试应用程序的一般骤如下:1.打开调试(Debug)窗口;2.在应用程序中设置断点(Breakpoint);3.在调试状态下运行应用程序;4.当执行到断点处挂起时,查看或改变有关变量的值;5.如有必要,逐行单步运行代码;6.根据需要,在运行过程中增添或修改断点;7.当发现问题时,纠正错误代码。结束放映第一页上一页下一页最后一页11.1.1打开调试窗口单击PowerBar工具栏中的Debug图标或SelectDebug图标,进入Debug窗口,如下图所示。结束放映第一页上一页下一页最后一页11.1.1打开调试窗口下面介绍图中图标的含义。Start图标:开始执行应用。单击该图标按钮可按调试方式执行当前应用。StartRemote图标:开始执行远程的应用。用于调试服务器端的代码。StopDebugging图标:停止调试当前的应用程序。Continue图标:继续执行。当程序遇到断点暂停执行时,单击该按钮即可使程序继续执行到下一个断点。StepIn图标:单步跟踪至用户自定义函数的内部,以检查函数当时的状态。StepOver图标:单步跟踪并跨越函数。该按钮只把函数当作一条语句来对待,并不跟踪至函数内部。StepOut图标:从函数内部一次执行完。当已经跟踪到函数内部又不希望继续单步跟踪时,可利用该按钮继续执行直至函数返回。RunToCursor图标:执行至指定光标处。可利用该按钮指定位置,一直执行至当前光标所在的语句。SetNextStatement图标:设置下一条要执行的语句。该按钮使从用户指定的位置执行。SelectScript图标:选择要调试的某一对象上的某个事件程序或用户自定义函数中的程序。结束放映第一页上一页下一页最后一页11.1.1打开调试窗口EditStop图标:编辑断点。可以查看所有断点,设置临时断点、条件断点,也可以清除断点。AddWatch图标:向Watch视图中添加变量。RemoveWatch图标:从Watch视图中删除变量。Close图标:关闭Debug画板。在Debug窗口中包含了几个视图和标签,用来显示程序或调试期间的状态信息。它们是:·Source视图:显示用户选中的事件脚本;·SourceBrowser标签视图:将当前应用程序包含的所有对象以树形结构显示;·SourceHistory标签视图:在Source视图中已经显示过的程序列表;·Local标签视图:显示当前执行状态下局部变量的值;·Global标签视图:显示当前执行状态下全局变量的值;·Instance标签视图:显示当前执行状态下实例变量的值;·Parent标签视图:显示当前执行状态下父对象的属性值;·Shared标签视图:显示当前执行状态下共享变量的值;结束放映第一页上一页下一页最后一页11.1.1打开调试窗口在Debug窗口中包含了几个视图和标签,用来显示程序或调试期间的状态信息。它们是:·ObjectInMemory标签视图:当前内存中的对象列表;·CallStack标签视图:执行至断点处被调用函数的列表,并给出被调函数所在的程序名和行号;·Breakpoints标签视图:指示断点激活与否的列表;·Watch标签视图:在应用执行过程中,已经观察过的程序列表;·Variable视图:在范围内的所有变量列表。11.1.2设置断点在Debug窗口中断点分为两种:普通断点和特殊断点。普通断点是为了中断程序的正常执行所设置的位置;特殊断点则是依据指定的条件来决定是否中断程序的正常执行,并进入调试状态。1.普通断点的设置用户可在程序或函数内设置断点。当关闭Debug窗口时,用户设置的断点将写入PowerBuilder的初始化文件PowerBuilder.ini中,用户再次打开Debug窗口时恢复所设置的断点。其设置步骤如下:结束放映第一页上一页下一页最后一页11.1.2设置断点1.普通断点的设置(1)在Source视图中显示程序,并把光标置于欲设置断点的位置;(2)双击此行或从右击弹出菜单中选择InsertBreakpoint。PowerBuilder设置的断点以红色的圆点显示在行的开头。如所选行不包括可执行的代码,PowerBuilder将在最近的可执行代码开始处设置断点。2.特殊断点的设置特殊断点又分为三类:当循环执行指定次数而触发的临时断点;当指定表达式为真时而触发的条件断点;当变量的值发生改变而触发的断点。特殊断点可用EditBreakpoints对话框来设置。EditBreakpoints对话框通过以下四种方式打开。·在Breakpoints视图中,双击欲设置断点的行;·在Source、Variables、Watch、Breakpoints视图中,单击鼠标右键,从弹出菜单中选Breakpoints项;·选择菜单栏Edit中的Breakpoints项;·单击工具条的EditStop图标。如下页图所示。当红色圆点为空心时,表示该断点无效;当红色圆点为实心时,表示该断点有效。单击圆点可在两个状态之间转换。结束放映第一页上一页下一页最后一页11.1.2设置断点2.特殊断点的设置结束放映第一页上一页下一页最后一页11.1.2设置断点2.特殊断点的设置·New:设置新断点;·Clear:清除光标所在行的断点;·ClearAll:清除所有断点。以下栏目用以设置临时断点和条件断点:·Location:输入断点的位置;·Occurrence:临时断点的循环次数(Integer型);单选此项可设临时断点;·Condition:条件断点的条件表达式;单选此项可设条件断点;·Occurrence和Condition:同时选择可设临时条件断点。11.1.3在调试状态下运行应用程序用户设置了断点以后,就可以在调试状态下运行应用程序。当应用程序遇到断点时,就会终止程序的运行,等待用户检查。检查完应用后,用户可以单步跟踪直至遇到下一个断点;也可以停止跟踪运行,以便执行新的调试或退出Debug窗口。1.开始运行单击工具栏上的Start图标,应用程序开始执行,直至遇到第一个断点停止,并用黄色的箭头指向下一条将被执行的行。此时用户可在窗口的各视图中查看应用的变量和状态信息。结束放映第一页上一页下一页最后一页11.1.3在调试状态下运行应用程序2.继续运行单击工具栏上的Continue图标,调试程序将从黄色箭头处开始继续运行,直至遇到下一个断点或应用正常结束。3.终止运行选择菜单栏Debug中的Stop菜单项。4.查看变量Variables视图包括Local、Global、Instance、Parent和Shared变量类型标签页,用户可以很方便地在各种变量间进行切换。各变量类型含义如下:·Local:当前程序或函数的局部变量;·Global:所有应用定义的全局变量和所有打开对象的属性;·Instance:当前对象的实例变量属性和当前对象定义的实例变量值;·Parent:当前实例的祖先的属性;·Shared:已打开的对象以及与之相关的共享变量。在Variables视图中,可改变变量的值。但枚举类型变量的值不可改变。改变的方法是:右击Variables视图中相应的变量,从弹出的菜单中单击EditVariables,则显示ModifyVariable对话框。CurrentValue栏显示了变量的原值,用户可在NewValue栏输入变量的新值,输入完毕单击OK按钮即可。结束放映第一页上一页下一页最后一页11.1.3在调试状态下运行应用程序在Variables视图中,也可以查看表达式的值,但首先应将表达式添加到Watch视图中。方法是在Watch视图的空白处单击鼠标右键,从弹出菜单中选择Insert项,显示NewExpression对话框。在Expression栏输入欲查看的表达式即可。5.单步跟踪单步跟踪有以下几种方式:·单步跟踪至函数内部(StepIn)和单步跟踪并跨越函数(StepOver)用户在跟踪应用时,既可以单步跟踪到函数内部,也可以单步跟踪并跨越函数。如果此程序不包括函数调用,两者效果相同。单击工具栏上的StepIn图标或选择Debug菜单中的StepIn菜单项将执行单步跟踪至函数内部。单击工具栏上的StepOver图标或选择Debug菜单中的StepOver菜单项将执行单步跟踪并跨越函数。·从函数内部一次执行完(StepOut)如已经跟踪到函数内部而又不想继续单步跟踪,可用StepOut继续执行直至函数返回。单击工具栏上的StepOut图标或选择Debug菜单中的StepOut菜单项将从函数内部一次执行完。结束放映第一页上一页下一页最后一页11.1.3在调试状态下运行应用程序·执行至指定的光标处(RunToCursor)用户可用这种方式跳过一段不感兴趣的程序段或跳至指定的断点处。选择下一次欲单步跟踪的程序行,单击工具栏上的RunToCursor图标或选择Debug菜单中的RunToCursor菜单项将运行至指定的行。·设置下一位置(SetNextStatement)用户可使用SetNextStatement来绕过包含错误的代码或用指定的变量值来测试部分应用。程序将从用户指定的光标处继续执行。选择欲继续执行的行,单击工具栏上的SetNextStatement图标或选择Debug菜单中的SetNextStatement菜单项将运行至指定的行。继续执行,可选择Continue、StepIn、StepOver之一。6.一次性跟踪的使用用户在常规模式下运行程序并发现错误时,一般的做法是中断程序的运行,也可以通过使用一次性跟踪(Just-in-timeDebug)在不中断应用的前提下切换到跟踪模式。首先进行一次性跟踪的设置:从Tool菜单中选择SystemOptions菜单项,显示SystemOptions窗口。从中选中Just-in-timeDebugging复选框,单击OK按钮即可。结束放映第一页上一页下一页最后一页11.1.3在调试状态下运行应用程序在常规模式下运行应用程序:单击工具栏中的Run图标,应用程序开始正常运行。如果发生系统错误,Debug窗口将自动打开,显示错误信息。在Debug窗口的Source视图中打开程序并进行调试。11.2应用程序的运行当应用程序调试通过之后,就可以在常规状态下运行了。单击工具栏中的Run图标,应用程序开始正常运行。11.3生成可执行文件和其他软件一样,用PowerBuilder开发的应用程序也需经过编译才能生成可执行的应用程序。PowerBuilder提供的编译工具可以将应用程序编译成直接在操作系统下运行的应用程序。11.3.1创建工程及编译使用Project中的ApplicationWizard建立工程的基本步骤如下:1.在PowerBar工具栏上单击New图标,选择Project标签页中的ApplicationWizard向导。结束放映第一页上一页下一页最后一页11.3.1创建工程及编译2.在AbouttheApplicationProjectWizard对话框中单击Next按钮。3.在SpecifyDestinationLibrary对话框中选择存储工程的应用库,单击Next按钮。4.在SpecifyProjectObject对话框中命名工程,单击Next按钮。5.在SpecifyExecutableandResourceFiles对话框中给可执行文件命名,选择资源文件,单击Next按钮。6.在SpecifyBuildOptions对话框中选择编

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功