教案應(yīng)用的調(diào)試和開發(fā)PowerBuilder公開課一等獎優(yōu)質(zhì)課大賽微課獲獎?wù)n件_第1頁
教案應(yīng)用的調(diào)試和開發(fā)PowerBuilder公開課一等獎優(yōu)質(zhì)課大賽微課獲獎?wù)n件_第2頁
教案應(yīng)用的調(diào)試和開發(fā)PowerBuilder公開課一等獎優(yōu)質(zhì)課大賽微課獲獎?wù)n件_第3頁
教案應(yīng)用的調(diào)試和開發(fā)PowerBuilder公開課一等獎優(yōu)質(zhì)課大賽微課獲獎?wù)n件_第4頁
教案應(yīng)用的調(diào)試和開發(fā)PowerBuilder公開課一等獎優(yōu)質(zhì)課大賽微課獲獎?wù)n件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第11章 應(yīng)用調(diào)試和發(fā)行 對應(yīng)用程序開發(fā)來說,錯誤再所難免,調(diào)試步驟必不可少。調(diào)試目標(biāo)是努力發(fā)覺并更正錯誤,使程序能更加好地運行。 11.1 應(yīng)用程序調(diào)試 PowerBuilder提供了兩種運行應(yīng)用程序方式:調(diào)試方式(Debug Mode)和常規(guī)方式(Regular Mode)。在調(diào)試方式中,可在腳本和函數(shù)中插入斷點或進行代碼單步執(zhí)行,而且能夠顯示執(zhí)行過程中變量值,方便找出邏輯錯誤。在常規(guī)方式中,應(yīng)用程序響應(yīng)用戶交互操作直到用戶中止運行或發(fā)生錯誤為止。這也是運行完整應(yīng)用程序方式。 調(diào)試應(yīng)用程序普通驟以下:1打開調(diào)試(Debug)窗口;2在應(yīng)用程序中設(shè)置斷點(Breakpoint);3在調(diào)試狀態(tài)

2、下運行應(yīng)用程序;4當(dāng)執(zhí)行到斷點處掛起時,查看或改變相關(guān)變量值;5如有必要,逐行單步運行代碼;6依據(jù)需要,在運行過程中增添或修改斷點;7當(dāng)發(fā)覺問題時,糾正錯誤代碼。結(jié)束放映第一頁上一頁下一頁最終一頁第1頁11.1.1 打開調(diào)試窗口 單擊PowerBar工具欄中Debug圖標(biāo)或Select Debug圖標(biāo),進入Debug窗口,以下列圖所表示。 結(jié)束放映第一頁上一頁下一頁最終一頁第2頁11.1.1 打開調(diào)試窗口下面介紹圖中圖標(biāo)含義 。 Start圖標(biāo):開始執(zhí)行應(yīng)用。單擊該圖標(biāo)按鈕可按調(diào)試方式執(zhí)行當(dāng)前應(yīng)用。 Start Remote圖標(biāo):開始執(zhí)行遠(yuǎn)程應(yīng)用。用于調(diào)試服務(wù)器端代碼。 Stop Debugg

3、ing圖標(biāo):停頓調(diào)試當(dāng)前應(yīng)用程序。 Continue圖標(biāo):繼續(xù)執(zhí)行。當(dāng)程序碰到斷點暫停執(zhí)行時,單擊該按鈕即可使程序繼續(xù)執(zhí)行到下一個斷點。 Step In圖標(biāo):單步跟蹤至用戶自定義函數(shù)內(nèi)部,以檢驗函數(shù)當(dāng)初狀態(tài)。 Step Over圖標(biāo):單步跟蹤并跨越函數(shù)。該按鈕只把函數(shù)看成一條語句來對待,并不跟蹤至函數(shù)內(nèi)部。 Step Out圖標(biāo):從函數(shù)內(nèi)部一次執(zhí)行完。當(dāng)已經(jīng)跟蹤到函數(shù)內(nèi)部又不希望繼續(xù)單步跟蹤時,可利用該按鈕繼續(xù)執(zhí)行直至函數(shù)返回。 Run To Cursor圖標(biāo):執(zhí)行至指定光標(biāo)處??衫迷摪粹o指定位置,一直執(zhí)行至當(dāng)前光標(biāo)所在語句。 Set Next Statement圖標(biāo):設(shè)置下一條要執(zhí)行語句。

4、該按鈕使從用戶指定位置執(zhí)行。 Select Script圖標(biāo):選擇要調(diào)試某一對象上某個事件程序或用戶自定義函數(shù)中程序。結(jié)束放映第一頁上一頁下一頁最終一頁第3頁11.1.1 打開調(diào)試窗口Edit Stop圖標(biāo):編輯斷點。能夠查看全部斷點,設(shè)置暫時斷點、條件斷點,也能夠去除斷點。 Add Watch圖標(biāo):向Watch視圖中添加變量。 Remove Watch圖標(biāo):從Watch視圖中刪除變量。 Close圖標(biāo):關(guān)閉Debug畫板。在Debug窗口中包含了幾個視圖和標(biāo)簽,用來顯示程序或調(diào)試期間狀態(tài)信息。它們是: Source視圖:顯示用戶選中事件腳本; Source Browser標(biāo)簽視圖:將當(dāng)前應(yīng)用

5、程序包含全部對象以樹形結(jié)構(gòu)顯示; Source History標(biāo)簽視圖:在Source視圖中已經(jīng)顯示過程序列表; Local標(biāo)簽視圖:顯示當(dāng)前執(zhí)行狀態(tài)下局部變量值; Global標(biāo)簽視圖:顯示當(dāng)前執(zhí)行狀態(tài)下全局變量值; Instance標(biāo)簽視圖:顯示當(dāng)前執(zhí)行狀態(tài)下實例變量值; Parent標(biāo)簽視圖:顯示當(dāng)前執(zhí)行狀態(tài)下父對象屬性值; Shared標(biāo)簽視圖:顯示當(dāng)前執(zhí)行狀態(tài)下共享變量值; 結(jié)束放映第一頁上一頁下一頁最終一頁第4頁11.1.1 打開調(diào)試窗口在Debug窗口中包含了幾個視圖和標(biāo)簽,用來顯示程序或調(diào)試期間狀態(tài)信息。它們是: Object In Memory標(biāo)簽視圖:當(dāng)前內(nèi)存中對象列表;

6、Call Stack標(biāo)簽視圖:執(zhí)行至斷點處被調(diào)用函數(shù)列表,并給出被調(diào)函數(shù)所在程序名和行號; Breakpoints標(biāo)簽視圖:指示斷點激活是否列表; Watch標(biāo)簽視圖:在應(yīng)用執(zhí)行過程中,已經(jīng)觀察過程序列表; Variable視圖:在范圍內(nèi)全部變量列表。 11.1.2 設(shè)置斷點在Debug窗口中止點分為兩種:普通斷點和特殊斷點。普通斷點是為了中止程序正常執(zhí)行所設(shè)置位置;特殊斷點則是依據(jù)指定條件來決定是否中止程序正常執(zhí)行,并進入調(diào)試狀態(tài)。1普通斷點設(shè)置用戶可在程序或函數(shù)內(nèi)設(shè)置斷點。當(dāng)關(guān)閉Debug窗口時,用戶設(shè)置斷點將寫入PowerBuilder初始化文件PowerBuilder.ini中,用戶再

7、次打開Debug窗口時恢復(fù)所設(shè)置斷點。其設(shè)置步驟以下: 結(jié)束放映第一頁上一頁下一頁最終一頁第5頁11.1.2 設(shè)置斷點1普通斷點設(shè)置(1)在Source視圖中顯示程序,并把光標(biāo)置于欲設(shè)置斷點位置;(2)雙擊此行或從右擊彈出菜單中選擇Insert Breakpoint。PowerBuilder設(shè)置斷點以紅色圓點顯示在行開頭。如所選行不包含可執(zhí)行代碼,PowerBuilder將在最近可執(zhí)行代碼開始處設(shè)置斷點。2特殊斷點設(shè)置特殊斷點又分為三類:當(dāng)循環(huán)執(zhí)行指定次數(shù)而觸發(fā)暫時斷點;當(dāng)指定表示式為真時而觸發(fā)條件斷點;當(dāng)變量值發(fā)生改變而觸發(fā)斷點。特殊斷點可用Edit Breakpoints對話框來設(shè)置。 E

8、dit Breakpoints對話框經(jīng)過以下四種方式打開。 在Breakpoints視圖中,雙擊欲設(shè)置斷點行; 在Source、Variables、Watch、Breakpoints視圖中,單擊鼠標(biāo)右鍵,從彈出菜單中選Breakpoints項; 選擇菜單欄Edit中Breakpoints項; 單擊工具條Edit Stop圖標(biāo) 。 以下頁圖所表示。當(dāng)紅色圓點為空心時,表示該斷點無效;當(dāng)紅色圓點為實心時,表示該斷點有效。單擊圓點可在兩個狀態(tài)之間轉(zhuǎn)換。 結(jié)束放映第一頁上一頁下一頁最終一頁第6頁11.1.2 設(shè)置斷點2特殊斷點設(shè)置結(jié)束放映第一頁上一頁下一頁最終一頁第7頁11.1.2 設(shè)置斷點 2特殊斷

9、點設(shè)置 New:設(shè)置新斷點; Clear:去除光標(biāo)所在行斷點; Clear All:去除全部斷點。以下欄目用以設(shè)置暫時斷點和條件斷點: Location:輸入斷點位置; Occurrence:暫時斷點循環(huán)次數(shù)(Integer型);單項選擇此項可設(shè)暫時斷點; Condition:條件斷點條件表示式;單項選擇此項可設(shè)條件斷點; Occurrence和Condition:同時選擇可設(shè)暫時條件斷點。 11.1.3 在調(diào)試狀態(tài)下運行應(yīng)用程序用戶設(shè)置了斷點以后,就能夠在調(diào)試狀態(tài)下運行應(yīng)用程序。當(dāng)應(yīng)用程序碰到斷點時,就會終止程序運行,等候用戶檢驗。檢驗完應(yīng)用后,用戶能夠單步跟蹤直至碰到下一個斷點;也能夠停頓

10、跟蹤運行,方便執(zhí)行新調(diào)試或退出Debug窗口。 1開始運行單擊工具欄上Start圖標(biāo),應(yīng)用程序開始執(zhí)行,直至碰到第一個斷點停頓,并用黃色箭頭指向下一條將被執(zhí)行行。此時用戶可在窗口各視圖中查看應(yīng)用變量和狀態(tài)信息。 結(jié)束放映第一頁上一頁下一頁最終一頁第8頁11.1.3 在調(diào)試狀態(tài)下運行應(yīng)用程序2繼續(xù)運行單擊工具欄上Continue圖標(biāo),調(diào)試程序?qū)狞S色箭頭處開始繼續(xù)運行,直至碰到下一個斷點或應(yīng)用正常結(jié)束。3終止運行選擇菜單欄Debug中Stop菜單項。4查看變量Variables視圖包含Local、Global、Instance、Parent和Shared變量類型標(biāo)簽頁,用戶能夠很方便地在各種變量

11、間進行切換。各變量類型含義以下: Local:當(dāng)前途序或函數(shù)局部變量; Global:全部應(yīng)用定義全局變量和全部打開對象屬性; Instance:當(dāng)前對象實例變量屬性和當(dāng)前對象定義實例變量值; Parent:當(dāng)前實例祖先屬性; Shared:已打開對象以及與之相關(guān)共享變量。在Variables視圖中,可改變變量值。但枚舉類型變量值不可改變。改變方法是:右擊Variables視圖中對應(yīng)變量,從彈出菜單中單擊Edit Variables,則顯示Modify Variable對話框。 Current Value欄顯示了變量原值,用戶可在New Value欄輸入變量新值,輸入完成單擊OK按鈕即可。 結(jié)

12、束放映第一頁上一頁下一頁最終一頁第9頁11.1.3 在調(diào)試狀態(tài)下運行應(yīng)用程序在Variables視圖中,也能夠查看表示式值,但首先應(yīng)將表示式添加到Watch視圖中。方法是在Watch視圖空白處單擊鼠標(biāo)右鍵,從彈出菜單中選擇Insert項,顯示New Expression對話框。在Expression欄輸入欲查看表示式即可。 5單步跟蹤單步跟蹤有以下幾個方式: 單步跟蹤至函數(shù)內(nèi)部(Step In)和單步跟蹤并跨越函數(shù)(Step Over)用戶在跟蹤應(yīng)用時,既能夠單步跟蹤到函數(shù)內(nèi)部,也能夠單步跟蹤并跨越函數(shù)。假如此程序不包含函數(shù)調(diào)用,二者效果相同。單擊工具欄上Step In圖標(biāo)或選擇Debug菜單

13、中Step In菜單項將執(zhí)行單步跟蹤至函數(shù)內(nèi)部。單擊工具欄上Step Over圖標(biāo)或選擇Debug菜單中Step Over菜單項將執(zhí)行單步跟蹤并跨越函數(shù)。 從函數(shù)內(nèi)部一次執(zhí)行完(Step Out)如已經(jīng)跟蹤到函數(shù)內(nèi)部而又不想繼續(xù)單步跟蹤,可用Step Out繼續(xù)執(zhí)行直至函數(shù)返回。單擊工具欄上Step Out圖標(biāo)或選擇Debug菜單中Step Out菜單項將從函數(shù)內(nèi)部一次執(zhí)行完。結(jié)束放映第一頁上一頁下一頁最終一頁第10頁11.1.3 在調(diào)試狀態(tài)下運行應(yīng)用程序 執(zhí)行至指定光標(biāo)處(Run To Cursor)用戶可用這種方式跳過一段不感興趣程序段或跳至指定斷點處。選擇下一次欲單步跟蹤程序行,單擊工具

14、欄上Run To Cursor圖標(biāo)或選擇Debug菜單中Run To Cursor菜單項將運行至指定行。 設(shè)置下一位置(Set Next Statement)用戶可使用Set Next Statement來繞過包含錯誤代碼或用指定變量值來測試部分應(yīng)用。程序?qū)挠脩糁付ü鈽?biāo)處繼續(xù)執(zhí)行。選擇欲繼續(xù)執(zhí)行行,單擊工具欄上Set Next Statement圖標(biāo)或選擇Debug菜單中Set Next Statement菜單項將運行至指定行。繼續(xù)執(zhí)行,可選擇Continue、Step In、Step Over之一。 6一次性跟蹤使用用戶在常規(guī)模式下運行程序并發(fā)覺錯誤時,普通做法是中止程序運行,也能夠經(jīng)過使

15、用一次性跟蹤(Just-in-time Debug)在不中止應(yīng)用前提下切換到跟蹤模式。 首先進行一次性跟蹤設(shè)置:從Tool菜單中選擇System Options菜單項,顯示System Options窗口。從中選中Just-in-time Debugging復(fù)選框,單擊OK按鈕即可。 結(jié)束放映第一頁上一頁下一頁最終一頁第11頁11.1.3 在調(diào)試狀態(tài)下運行應(yīng)用程序在常規(guī)模式下運行應(yīng)用程序:單擊工具欄中Run圖標(biāo),應(yīng)用程序開始正常運行。假如發(fā)生系統(tǒng)錯誤,Debug窗口將自動打開,顯示錯誤信息。在Debug窗口Source視圖中打開程序并進行調(diào)試。11.2 應(yīng)用程序運行當(dāng)應(yīng)用程序調(diào)試經(jīng)過之后,就能

16、夠在常規(guī)狀態(tài)下運行了。單擊工具欄中Run圖標(biāo),應(yīng)用程序開始正常運行。 11.3 生成可執(zhí)行文件和其它軟件一樣,用PowerBuilder開發(fā)應(yīng)用程序也需經(jīng)過編譯才能生成可執(zhí)行應(yīng)用程序。PowerBuilder提供編譯工具能夠?qū)?yīng)用程序編譯成直接在操作系統(tǒng)下運行應(yīng)用程序。11.3.1 創(chuàng)建工程及編譯使用Project中Application Wizard建立工程基本步驟以下:1在PowerBar工具欄上單擊New圖標(biāo),選擇Project標(biāo)簽頁中Application Wizard向?qū)А?結(jié)束放映第一頁上一頁下一頁最終一頁第12頁11.3.1 創(chuàng)建工程及編譯2在About the Applicat

17、ion Project Wizard對話框中單擊Next按鈕。3在Specify Destination Library對話框中選擇存放工程應(yīng)用庫,單擊Next按鈕。4在Specify Project Object對話框中命名工程,單擊Next按鈕。5在Specify Executable and Resource Files對話框中給可執(zhí)行文件命名,選擇資源文件,單擊Next按鈕。6在Specify Build Options對話框中選擇編譯類型:Full Build(完全編譯)和Incremental Build(只重新編譯新增部分)。Prompt for Overwrite選中,表示當(dāng)覆

18、蓋文件時出現(xiàn)提醒,單擊Next按鈕。7在Generate Machine Code對話框中選擇應(yīng)用程序是否生成機器代碼,單擊Next按鈕。 8在Specify Dynamic Library Options對話框中選擇確定應(yīng)用程序是否生成動態(tài)庫,單擊Next按鈕。9在Specify Version Infoumation對話框中填寫版本信息,單擊Next按鈕。 10在Ready to Create Application對話框中單擊Finish按鈕。出現(xiàn)新界面,在此界面中還能夠?qū)η懊嬖O(shè)置進行修改。結(jié)束放映第一頁上一頁下一頁最終一頁第13頁11.3.1 創(chuàng)建工程及編譯11單擊project畫板上

19、Deploy圖標(biāo)即可進行編譯應(yīng)用程序,生成EXE文件。11.3.2 應(yīng)用系統(tǒng) 用PowerBuilder開發(fā)可執(zhí)行應(yīng)用系統(tǒng)普通包含以下三個部分:可執(zhí)行文件(即EXE文件)、動態(tài)庫文件(PowerBuilderD或DLL文件)、外部資源文件(如位圖、圖標(biāo)等)。1EXE文件對任何PowerBuilder應(yīng)用來說,都最少需要一個編譯好EXE文件。這個文件包含了最基本、能使應(yīng)用系統(tǒng)在各種操作系統(tǒng)下執(zhí)行程序代碼,用戶能夠經(jīng)過雙擊EXE文件圖標(biāo)來執(zhí)行應(yīng)用程序。2PowerBuilderD文件或DLL文件為確保EXE文件能在普通機器上運行,應(yīng)使EXE文件小于1.2MB。假如有可能超出1.2MB,編譯時可利用

20、PowerBuilder動態(tài)庫技術(shù),把應(yīng)用分為幾部分,使應(yīng)用中對象分別存放在多個庫文件中。程序會在動態(tài)庫中搜索并動態(tài)調(diào)用這些庫中對象。動態(tài)庫含有可使應(yīng)用模塊化、易維護、可重用好、靈活高效優(yōu)點。所以,在組織應(yīng)用系統(tǒng)時,應(yīng)該充分利用動態(tài)庫技術(shù),把在整個應(yīng)用中利用率較低對象,或可能被其它應(yīng)用調(diào)用組件作為動態(tài)對象放在動態(tài)庫中,在可執(zhí)行文件中只放少許、使用頻率最高對象。結(jié)束放映第一頁上一頁下一頁最終一頁第14頁11.3.2 應(yīng)用系統(tǒng)3資源除了如窗口、菜單等PowerBuilder對象之外,應(yīng)用在執(zhí)行時還可能用到其它資源,如位圖和圖標(biāo)等。這些被引用資源同PowerBuilder對象一樣,也應(yīng)該作為可執(zhí)行應(yīng)

21、用一部分編譯。資源發(fā)行方法有兩種:第一,與可執(zhí)行文件一起發(fā)行。只要將資源與應(yīng)用一起發(fā)行,并確保安裝在可搜索路徑中,程序執(zhí)行時會搜索這些資源。第二,利用資源文件(PowerBuilderR文件)。資源文件是應(yīng)用中所需資源清單,在資源文件中列出了這些資源所在路徑及文件名。PowerBuilder建立可執(zhí)行文件或動態(tài)庫時可依據(jù)資源文件中列出資源,將它們連入可執(zhí)行文件或動態(tài)庫中。這種方法適合建立一些大型應(yīng)用。11.4 應(yīng)用程序發(fā)行發(fā)行PowerBuilder應(yīng)用程序時,只在用戶機器上安裝應(yīng)用程序可執(zhí)行文件(包含生成應(yīng)用程序時生成動態(tài)庫)是遠(yuǎn)遠(yuǎn)不夠。為確保正常運行,還應(yīng)向用戶發(fā)行PowerBuilder運行時所需動態(tài)鏈接庫,安裝數(shù)據(jù)庫接口,配置ODBC數(shù)據(jù)源,安裝網(wǎng)絡(luò)驅(qū)動程序,以及必要時修改操作系統(tǒng)配置等。 結(jié)束放映第一頁上一頁下一頁最終一頁第15頁11.4.1 PowerBuilder運行時庫PowerBuilder開發(fā)環(huán)境中包含一組脫離開發(fā)環(huán)境運行PowerBuilder應(yīng)用程序所需運行時庫,稱做PowerBuilder De

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論