资源描述
,单击此处编辑母版标题样式,gjgj,#,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,下页,上页,返回首页,第九章 调试发布应用程序,9.1,使用调试器,9.2,创建可执行文件,9.3,发布应用程序,实训九,创建可执行文件,1,gjgj,9.1 使用调试器,9.1.1,调试器工作界面,9.1.2,使用断点,9.1.3,调试过程,2,gjgj,9.1.1 调试器工作界面,启动调试器的方法为:,单击,PowerBar,工具栏“,Debug”,图标 ,系统进入调试画笔界面。,3,gjgj,1.画笔工具栏,调试画笔由画笔工具栏和工作区组成。,2.工作区的划分,(1)源代码区(,Source):,显示指定对象的函数或事件处理程序的源代码。,(2)对象浏览标签(,Source Browser):,显示应用程序中使用的各种对象。,(3)对象历史标签(,Source History):,显示以前曾经在源代码区显示过源代码的事件或函数名。双击某个名称时,相应的源代码显示在源代码区中。,(4),内存中对象标签(,Object in Memory):,显示当前执行状态下已经加载到内存中的对象以及对象属性的取值。,(5),局部变量标签(,Local):,显示当前执行状态下局部变量的取值。,4,gjgj,(6)实例变量标签(,Instance):,显示当前执行状态下实例变量的取值。,(7)全局变量标签(,Global):,显示当前执行状态下全局变量的取值。,(8)共享变量标签(,Shared):,显示当前执行状态下共享变量的取值。,(9)父对象标签(,Parent):,显示当前执行状态下父对象属性的取值。,(10)调用栈标签(,Call Stack):,显示执行到当前断点时的函数调用序列,并在行尾给出当前断点所在行的行号。,(11)断点标签(,Breakpoints):,显示应用程序中当前已经设置的所有断点。,(12)观察变量标签(,Watch):,显示需要经常查看其取值的变量。,5,gjgj,3.,调整工作区,如果希望以其他方式查看程序的运行信 息,那么可以按需要调整各工作区以及标签的位置。,6,gjgj,9.1.2 使用断点,1.选择代码,在开始调试之前,首先要选择想跟踪调试哪一段代码,选中的代码将显示在源代码区中。,2.设置断点,设置断点的操作方法为:,在源代码区中找到要设置断点的行,双击该行(或指向该行,单击右键,打开快捷菜单,选择“,Insert Breakpoint”,命令),当前行前面就出现一个断点标志。,7,gjgj,8,gjgj,3.,清除断点,去掉断点的操作方法为:,在源代码区中找到该断点,双击该行(或指向该行,单击右键,打开快捷菜单,选择“,Clear Breakpoint,”,命令)。,9,gjgj,4.编辑断点,编辑断点的操作方法为:,(1)选择“,Edit”“Breakpoint”,命令(或指向源代码区,单击右键,选择“,Breakpoint”,命令),打开“,Edit Breakpoints”,对话框。,10,gjgj,(2)单击“,Location”,选项卡,显示当前应用程序中设置的所有断点,并可以增加断点、删除断点、清除所有断点。在选项卡的底部显示并可以设置断点的扩展属性,包括断点位置、执行几次后进入中断模式和设置条件断点等。,“Location”,输入框显示断点位置,语法格式为:,|.。,“Occurrence”,输入编辑框指示调试时断点行所在语句在第几次执行时进入中断模式。,“Condition”,输入框中可以输入一个其值为,TRUE,或,FALSE,的逻辑表达式,调试模式中,程序执行到该行后就会计算该逻辑表达式的值,当其值为,TRUE,时,进入中断模式。,11,gjgj,(3)单击“,Variable”,选项卡,可以设置一个或多个变量,当其中某个变量的取值发生变化时,让,PowerBuilder 9.0,进入中断模式,这种方式称为变量断点。当需要观察某个变量的值何时发生变化时,这个选项卡就十分有用了。,(4)如果要删除某个变量断点,可以在该对话框上部的断点列表中选择欲删除的断点,然后单击“,Clear”,按钮。要删除所有变量断点,可以单击“,Clear All”,按钮。,(5)单击“,Variable”,选项卡,可以设置一个或多个变量,当其中某个变量的取值发生变化时,让,PowerBuilder 9.0,进入中断模式,这种方式称为变量断点。,12,gjgj,9.1.3 调试过程,设置了断点后,单击调试画笔工具栏上的“,Start”,图标,应用程序将以调试模式运行。当执行到第一个断点后,,PowerBuilder 9.0,进入中断模式。此时,既可以让程序运行到下一个断点,也可以逐行跟踪。,1.运行到下一个断点,让程序直接运行到下一个断点的操作方法为:,单击工具栏“,Continue”,图标。,13,gjgj,2.单步执行,单步执行可以逐行查看应用程序的运行结果。,PowerBuilder 9.0,的调试器提供了三种单步执行方式:,单步进入(,Step In)、,单步执行(,Step Over)、,单步跳出(,Step Out)。,14,gjgj,3.执行到光标处,执行到光标处的操作方法为:,(1)将光标定位在欲查看执行情况的语句上。,(2)单击工具栏“,Run To Cursor”,图标。,(3)程序运行到光标所在行后,进入中断模式。此时可以查看变量、属性取值,也可以使用单步跟踪方式逐条执行语句。,15,gjgj,4.设置下一条执行语句,设置下一条执行语句的操作方法为:,(1)在源代码区中,将光标(一条闪烁的竖线)移动到下一条要执行的语句上。,(2)单击工具栏“,Set Next Statement”,图标。,16,gjgj,5.增加与删除观察变量,向观察变量区增加变量或属性的操作方法为:,(1)在变量区找到希望查看其取值的变量。,(2)将该变量从变量区拖动至观察变量区。,在观察变量区中观察表达式的取值的操作方法为:,(1)指向观察变量区,单击右键,选择“,Insert”,命令。,(2)在“,Expression”,输入框中输入表达式,该表达式可以是任何有效的,PowerBuilder 9.0,表达式。,对增加到观察变量区中的变量,随时可以将其从观察变量区中删除。,删除观察变量区中的变量的操作方法为:,指向要删除的变量,单击右键,打开快捷菜单,选择“,Clear,”,命令。,17,gjgj,6.修改变量取值,改变变量取值的操作方法为:,(1)在变量区或观察变量区双击要修改值的变量,打开“,Modify Variable”,对话框。,(2)在“,New Value”,输入框中输入新值。如果要设置为空值(,NULL),时,可以选中复选框“,NULL”。,(3)单击“,OK”,按钮,完成新值设定。,18,gjgj,7.,停止调试,在中断模式下,单击工具栏“,Close,”,图标,将关闭调试器,返回到,PowerBuilder 9.0,设计模式。,19,gjgj,9.2 创建可执行文件,9.2.1,创建可执行文件的步骤,9.2.2,创建可执行文件的问题,20,gjgj,9.2.1 创建可执行文件的步骤,1.,创建新工程,(1)单击,PowerBar,工具栏“,New”,图标,打开“,New”,对话框,单击“,Project”,选项卡,。,21,gjgj,(2)该选项卡提供了多个选项,用于创建不同类型的工程。其中“,Application”,选项和“,Application Wizard”,选项用于创建可执行文件。,(3)选中“,Application”,,单击“,OK”,按钮,,打开“,Project”,对话,框。,22,gjgj,2.设置编译选项,(1)“,Executable File Name”,输入框用于指定编译后的可执行文件的存放路径及名称。,(2)“,Resource File Name”,输入框用于指定可执行文件和动态库使用的资源文件名。,(3)“,Project Build Options”,框用于设置建立工程的方式。,(4)“,Code Generation Options”,框用于设置代码生成选项。,(5)工作区下部“,Library”,区域列出了应用程序中使用的应用库。,23,gjgj,3.,生成可执行程序,单击工具栏“,Deploy,”,图标,打开“,Build Library,”,对话框,将根据工程设置生成对象。,24,gjgj,9.2.2 创建可执行文件的问题,PowerBuilder 9.0,允许以三种方式创建可执行文件:第一,创建一个包含应用程序所有部件的单一的、用户可直接运行的可执行文件;,第二,创建包含一个规模较小的可执行文件和一个或几个称之为,PowerBuilder 9.0,动态库(,PBD),的文件;,第三,创建16位或32位机器代码可执行文件,并带有一个或几个动态链接库(,DLL)。,25,gjgj,1.可执行文件,伪代码格式:伪代码是,PowerBuilder 9.0,编译对象时生成的一种中间代码。,机器代码格式:机器代码格式是,PowerBuilder 9.0,生成真正的二进制文件。,2.资源文件,资源文件由需要编译到可执行文件或动态库中的每个对象名称组成。,3.动态库,PowerBuilder 9.0,的动态库(包括,PBD,和,DLL,),中包含了相应,PowerBuilder 9.0,库文件中所有编译好的代码。,单独创建动态库:,Library,指向应用库右键,Build Runtime Library。,26,gjgj,4.资源的交付方式,当应用程序中使用资源后,在交付应用程序时必须与应用程序一起交付这些资源。,包括:,将资源包含在可执行文件中,将资源包含在动态库中,作为独立文件交付资源,27,gjgj,9.3 发布应用程序,9.3.1,PowerBuilder 9.0,运行时库,9.3.2,安装数据库接口,9.3.3,实例:学生选课系统版本20,28,gjgj,9.3.1,PowerBuilder 9.0,运行时库,PowerBuilder 9.0,开发环境中包括了一组脱离开发环境运行,PowerBuilder 9.0,应用程序所需的运行时库,这是一组动态链接库(,DLL)。,发行应用程序时,必须同时向用户提供这组运行时库,并安装在合适的路径下,通常放置在应用程序所在的目录下或系统的搜索路径下。,29,gjgj,运行时库文件,对应的对象和功能,PBVM80.DLL,所有,LIBJCC.DLL,所有,PBDWE80.DLL,数据窗口和数据存储,PBRTC80.DLL,多格式文本框(,Rich Text,),PBFNT80.INI,映射不可用字体,PBLAB80.INI,标签数据窗口展示风格的预定义格式,PBTRA80.DLL,跟踪数据库连接,运行时库文件及需要这些文件的对象和功能,30,gjgj,9.3.2 安装数据库接口,当应用程序需要访问数据库时,在为用户安装应用程序的同时还必须为其安装好数据库接口文件。,安装数据库接口文件包括两方面的内容:,第一,安装,PowerBuilder 9.0,提供的专用接口或,ODBC,驱动程序(根据应用程序要访问的数据库而定);,第二,安装数据库厂商提供的数据库驱动程序(不同厂商驱动程序不同)。,31,gjgj,访问大型数据库所需的,PowerBuilder 9.0,专用接口文件,(应该安装在应用程序所在的目录或系统目录下),数据库管理系统,接口文件,INFORMIX I-Net 7,PBIN780.DLL,INFORMIX I-Net 9,PBIN980.DLL,Microsoft SQL Server 6 and 7,PBMSS80.DLL,Oracle 7.3,PBO7380.DLL,Oracle 9.0.x and Oracle 8.1.x,PBO8480.DLL,Sybase DirectConnect,PBDIR80.DLL,Sybase Adaptive Server Enterprise CT-LIB,PBSYC80.DLL,Sybase Adaptive Server Enterprise CT-LIB for EAServer,PBSYJ80.DLL,32,gjgj,9.3.3 实例:学生选课系统版本20,例9-1 创建学生选课系统的可执行文件,设计:对学生选课系统,直接生成可执行机器代码。因为这个系统比较简单,所以只生成一个可执行文件,不使用动态链接库。为了保证运行速度,在生成时采用速度优化的方式。,操作步骤:,(1)启动,PowerBuilder 9.0,,打开工作区“,example1.pbw”。,(2)选择“,File”“New”,命令,打开“,New”,对话框,选择“,Project”,选项卡。,(3)选中“,Application”,,单击“,OK”,按钮,打开“,Project”,对话框。,33,gjgj,(4)在“,Executable File Name”,输入框中输入可执行文件的名字“,student.exe”。,在“,Code Generation Options”,区中,选中“,Machine Code”,项,在“,Optimization”,中选择“,Speed”,项。在“,Version”,区中输入版本信息,包括公司名称、产品名称等。,(5)单击工具栏“,Deploy”,按钮,开始生成可执行文件。,(6)生成完成后,单击工程画笔工具栏中的“,Save”,按钮,打开“,Save Project”,对话框,输入工程名“,student”。,(7)单击“,OK”,按钮,退出,PowerBuilder9.0,,测试生成的可执行文件。,34,gjgj,实训九 创建可执行文件,实验名称:创建学生选课系统的可执行文件,目的要求:掌握创建可执行文件的方法,了解工程画笔中各个编译选项的含义。,操作步骤:,(1)打开工作区,启动工程画笔。,(2)设置各个编译选项,生成可执行文件。,(3)保存工程,测试所生成的可执行文件。,结束,放映,35,gjgj,
展开阅读全文