第08章 程序调试与创建可执行文件bdfn

上传人:无*** 文档编号:243942415 上传时间:2024-10-01 格式:PPTX 页数:22 大小:193.89KB
返回 下载 相关 举报
第08章 程序调试与创建可执行文件bdfn_第1页
第1页 / 共22页
第08章 程序调试与创建可执行文件bdfn_第2页
第2页 / 共22页
第08章 程序调试与创建可执行文件bdfn_第3页
第3页 / 共22页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*, PowerBuilder,实用教程,叶核亚 王青云,第,08,章,程序调试与创建可执行文件,8.1,程序调试技术,8.2,创建并运行可执行文件,8.1,程序调试技术,8.1.1,发现错误,8.1.2,调试画板,8.1.3,调试过程,8.1.1,发现错误,当程序不能正常运行或者运行结果不正确时,表明程序中有错误。按错误的性质可将程序错误分成,3,类:语法错、语义错、逻辑错。,1.,语法错,2.,语义错,3.,逻辑错,1,语法错,违反语法规范的错误称为语法错(,Syntax Error,),,这类错误通常在编译时发现,又称编译错。例如,标识符未声明,表达式中运算符与运算分量类型不兼容,变量赋值时的类型与声明时的类型不匹配,,if,语句需要以,if end,结束等。,编译器一旦发现语法错就停止编译,并在脚本视图底部给出错误信息。,PowerBuilder,在保存脚本的同时进行编译,所以,如果脚本中有语法错,则编译不通过,无法保存。,为避免产生语法错误,应严格按照语法定义编写脚本,注意书写细节,在书写属性和函数时,可以利用,PowerBuilder,的编辑提示功能,选择相应的属性和函数。,2 语义错,若程序在语法上正确,但在语义上存在错误,称为语义错(,Semantic Error,)。,例如,输入数据的格式错,除数为,0,错,给变量或属性赋予超出其范围的值,试图打开一个不存在的文件,试图访问一个未打开的窗口等。,此时程序能够通过编译,但在运行时会发生错误,所以这类错误又称运行错(,Runtime Error,)。,系统发现运行错时,将停止程序运行,给出错误信息。,语义错的产生视程序运行情况而定,不由程序本身所控制,程序中不能预见错误的发生。如果不希望程序因某个运行错而完全停止,则可以在应用程序对象的,SystemError,事件中写处理错误的程序。当程序运行过程中产生运行错误时,系统将会触发应用程序对象中的,SystemError,事件,执行该事件脚本。,3 逻辑错,当程序通过编译,可运行,但运行结果却与期望值不符,这类错误称为逻辑错(,Logic Error,)。,例如,由于死循环而没有结果,循环次数不对等因素导致计算结果不正确等。,因为系统无法找到逻辑错,所以逻辑错最难调试。此时,程序员必须凭借自身的程序设计经验,并运用,PowerBuilder,的调试功能,才能找到错误原因及出错位置,从而改正错误。,8.1.2,调试画板,PowerBuilder,集成开发环境提供了两种运行应用程序的方式:常规方式和调试方式。,l,常规方式:应用程序响应用户的交互操作并且一直执行直至用户终止它或出现运行错误。这是用户完整运行应用程序的方式。,l,调试方式:在脚本和函数中插入断点或进行脚本的单步执行,系统每遇到含有断点的行就停止执行,此时可以显示执行过程中变量的取值,以便找出脚本中的逻辑错误。,调试画板(,Debug Painter,),是在调试方式下运行应用程序的工具。,1.,打开调试画板,2.,视图,3.,工具栏,1.,打开调试画板,单击,PowerBar,上的【,Debug,】,按钮,打开调试画板,,调试画板由一个工具栏和若干视图组成,如下图所示。,2,视图,调试画板包含的视图见下表。,3,工具栏,打开调试画板后,主菜单增加了,Debug,菜单。,Debug,菜单下的,菜单项与调试画板工具栏上的按钮一致。调试画板工具栏,上按钮说明如下图所示。,8.1.3,调试过程,1 选择需要调试的脚本,在开始调试之前,首先需要选择跟踪调试哪一段脚本。在,对象浏览视图中,选择需要调试的脚本,,选中脚本将显示在源代码视图中。,2 设置,/,清除断点,在常规方式下的脚本视图中,或在调试画板的源代码视图中,都可以设置断点。设置断点方法是,将光标停在脚本中的某行上,执行弹出式菜单,Insert Breakpoint,,,之后在当前行之前有一个圆点,表示该行已被设置为运行时的断点。在断点行上,执行弹出式菜单,Clear Breakpoint,,,则可清除已设置的断点。,8.1.3,调试过程(续),3 跟踪运行,一旦设置好断点,就能在调试方式下运行应用程序。应用程序将会正常运行直至遇到含有断点的行才挂起。,4 查看,变量值的变化情况,调试程序时,系统将脚本中声明的全局、局部等变量的中间结果分别显示在不同的视图上。用户还可根据需要,将变量添加到,Watch,窗口以查看变量的动态变化情况。,8.2,创建并运行可执行文件,应用程序经过设计、开发、调试和试运行,排除了明显的与潜在的错误并达到预期功能后,要把应用程序编译成可执行文件,这样用户就能够在没有安装,PowerBuilder,环境的计算机上,像运行其他软件那样运行应用程序了。,在用户机器上运行,PowerBuilder,数据库应用程序,需要将用户机器设置为数据库的客户端,并且要有,PowerBuilder,虚拟机的支持,即还要携带系统的运行库文件,8.2.1,工程对象,8.2.2,在客户端部署应用程序,8.2.1,工程对象,在集成开发环境中,可以运行应用程序,但系统并没有生成可执行文件(.,exe)。,如果需要生成可执行文件,必须创建工程对象,才能将调试通过的应用程序编译成可执行文件。,工程对象(,project),是一种独立的,PowerBuilder,对象,用于将应用程序编译成一个可执行文件(.,exe),和多个,PowerBuilder,动态库(.,pbd)。,8.2.1,工程对象(续),1 创建工程对象,2 指定生成动态库,3 为动态库指定包含的附加资源,1.,创建工程对象,执行,File | New,菜单,在,New,对话框的,Project,页上选择,Application,图标,则创建了一个工程对象。,在工程画板中,需要为工程对象指定以下编译特性:,l,指定生成的可执行文件名。,l,指定哪些库需要生成动态库(,PBD,或,DLL,)。,l,指定资源文件,资源文件中声明应用程序中包含的附加资源,例如图像文件等。,2 指定生成动态库,应用程序中在对象之间建立联系有两种方式:静态引用和动态引用。,PowerBuilder,只将所有静态引用的对象编译到可执行文件中,而没有将动态引用的对象编译到可执行文件中。所以运行时看不到动态引用的对象。,为了使可执行文件在运行时能够显示动态引用的对象,必须将库文件(.,pbl),编译生成动态库(.,pbd)。,动态库中包含了应用程序中所有动态引用的对象,这些对象能被可执行文件调用。,应用程序可以包含多个库文件,每一个库文件编译生成一个动态库文件。,在工程对象画板中,选中库文件右边的,PBD,复选框,则声明该库文件需要编译生成动态库,并指明了库文件的路径。,3 为动态库指定包含的附加资源,对于动态引用的图像文件,它们属于应用程序使用的附加资源,没有包含在库文件中。因此,在生成的动态库中,也不会包含这些动态指定的图像。这时,需要制作一个文本格式的资源文件(,.,pbr,),,其中包含应用程序中所有动态引用的图像文件名。在工程对象画板的,Resource File Name,编辑框中指定资源文件的路径,则可执行文件中能够显示这些位图、图标或图像文件。,8.2.2,在客户端部署应用程序,PowerBuilder,应用程序是运行在客户端的,用户使用的客户端机器通常不作为程序开发的基地,因而不需要安装,PowerBuilder,开发环境。或者说,,PowerBuilder,应用程序通常是运行在没有,PowerBuilder,环境的客户端的。这时,仅有应用程序的可执行文件和动态库是不够的,还必须要有,PowerBuilder,虚拟机的支持。,PowerBuilder,为脱离开发环境运行应用程序准备了一组动态链接库,称为,Deployment Kit,。,这些运行库文件一般在,SybaseSharedPowerBuilder,目录下,并不是所有运行库文件都是必需的,可以根据应用程序的需要选择所需的运行库文件。,8.2.2,在客户端部署应用程序(续,1,),如果运行与数据库无关的,PowerBuilder,应用程序的可执行文件,需要以下,3,个运行库文件:,pbvm90.dll PowerBuilder,虚拟机,必需,libjcc.dll,必需,libjsybheap.dll,必需,8.2.2,在客户端部署应用程序(续,2,),将,PowerBuilder,数据库应用程序部署到用户机器,使之成为数据库的客户端,需要进行以下操作:,安装数据库的客户端软件。,通过,ODBC,或专用接口配置数据源,连接数据库。,复制系统运行库中数据源接口文件和数据窗口引擎文件。数据源接口文件既可以是通用的,ODBC,,也可以是数据库的专用接口。,复制应用程序的可执行文件及动态库文件。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!