Delphi開發(fā)的調(diào)試技巧_第1頁
Delphi開發(fā)的調(diào)試技巧_第2頁
Delphi開發(fā)的調(diào)試技巧_第3頁
Delphi開發(fā)的調(diào)試技巧_第4頁
Delphi開發(fā)的調(diào)試技巧_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、轉(zhuǎn)Delphi開發(fā)的調(diào)試技巧Delphi開發(fā)的調(diào)試技巧1、設置調(diào)試選項Delphi主菜單?!綪roject】>【Options】,或單擊工程管理器中的【Project Options】按鈕。顯示Project Options,選擇Complier<1>選中 Debug Information :把調(diào)試信息嵌入到DCU單元文件,會加大編譯后的DCU文件,但不會影響最后生成的exe的大小和執(zhí)行速度。同時激活【Search】菜單中的【Find Error】命令。當文件中包含調(diào)試信息并得到一個運行時錯誤(run-time error),記錄下Delphi提供的16進制地址,在【Sea

2、rch】>【Find Error】中輸入,Delphi將重新編譯程序,并停留在產(chǎn)生錯誤的命令行。<2>Local symbols:決定調(diào)試器能否看到在Implementation中定義的局部變量。<3>Reference infoj選項/Definition Only選項是否產(chǎn)生應用程序中對象標識符的引用信息。信息和對象代碼存在dcu文件中,可以使用對象瀏覽器查看。如果Definition Only 選項同時選中,編譯器將生成標識符定義位置的信息,能夠激活對象瀏覽器的Refenrence頁。如果不選,Dcu文件更小。編輯器命令$D Debug Informatio

3、n$L Local Information$Y Symbol Information$C Assertions2、使用內(nèi)部調(diào)試器<1> 命令行參數(shù)在【Run】>【Parameters】中設置<2>斷點條件斷點使源代碼斷點只有在滿足某個條件時才有效。在【View】>Debug windows->【BreakPoints】打開“BreakPoint List”對話框,右擊斷點,從彈出菜單中選擇屬性。打開“Source BreakPoint Properties”對話框,在Condition中輸入條件,在對話框中點擊按鈕【Advanced】,可以設置更多選項

4、,“Ignore Subsequent Exceptions”使調(diào)試程序遇到下一個斷點時不中斷;選中“Handle Subsequent Exception”則調(diào)試程序遇到下一個斷點時恢復默認性能。也可以通過【Run】>【Add BreakPoint】設置。數(shù)據(jù)斷點特定地址的內(nèi)存被修改時才使程序掛起。【Run】>【Add BreakPoint】>【Data BreakPoint】命令添加,或者在BreakPoint List對話框中右擊,選擇Add Data BreakPoint。輸入監(jiān)測內(nèi)存區(qū)域的開始地址和長度(字節(jié)數(shù))地址斷點特定地址的代碼執(zhí)行時就使程序掛起。通常在CPU

5、窗口中設置。模塊加載地址在一個模塊加載時使程序掛起。【Run】>【Add BreakPoint】斷點組使用斷點組,任何一個斷點都能設置成使其他斷點有效或無效,可以通過斷點算法來查找特殊的錯誤。3、單步執(zhí)行【Step Over】 (F8功能鍵),【Trace Into】(F7功能鍵),【Run to Cursor】(F4功能鍵)臨時使程序暫?!綪rogram Pause】。Ctrl+F5 【Add Watch】,Ctrl+F7 【Evaluate/Modify】4、其他工具<1>Debug Inspector 適合查看由許多數(shù)據(jù)組成的復合數(shù)據(jù),諸如類和記錄。單擊省略號按鈕,可以

6、修改數(shù)據(jù)的值。<2>計算和修改Evaluate/Modify,可以改變變量的值,但不能訪問超出域外的函數(shù)和變量。<3>訪問調(diào)用棧 【View】>【Debug Windows】>【Call Stack】,可以看到函數(shù)和過程的調(diào)用情況及傳遞給他們的參數(shù)。<4>查看線程,如果應用程序運行了多線程,可以通過【View】【Debug Windows】【Threads】查看線程的狀態(tài),可以查看某一線程的源代碼,選擇當前線程。(ctrl+alt+t)<5>事件日志記錄調(diào)試期間發(fā)生的事情。【View】【Debug Windows】(ctrl+alt+

7、v),可以在【Tools】【Debugger Options】對話框“Debugger”選項組或事件日志的本地菜單配置事件日志功能。記錄的事件包括:進程開始、終止、模塊加載斷點、發(fā)給應用程序的Windows消息以及使用OutputDebugString()的輸出。<6>模塊視圖獲取所有加載到應用程序進程中的模塊。(ctrl+alt+m)在過程、函數(shù)、事件內(nèi)部, SHIFT+CTRL+向上的方向鍵 可跳躍到相應的過程、函數(shù)、事件的定義相反,在過程、函數(shù)、事件的定義處,SHIFT+CTRL+向下的方向鍵 可跳躍到具體過程、函數(shù)、事件內(nèi)部CTRL+ SHIFT + C:編寫申明或者補上函

8、數(shù). 如: procedure TT.A(AA: string); /函數(shù)申明 安下:CTRL+ SHIFT + C后,會寫上 procedure TT.A(AA: string); begin end;SHIFT+CTRL+E 顯示 EXPLORERcrtl + shift + n (n=1,2,3,4.) 定義書簽 crtl + n (n=1,2,3,4.) 跳到書簽nALT+鼠標左鍵可以塊選代碼,刪除對齊的重復代碼非常有用。 Ctrl+B           Buffer List窗口。 Ctrl+I

9、0;          同Tab鍵。 Ctrl+M           同Enter鍵。 Ctrl+N           同Enter鍵,但光標位置保持不變。 Ctrl+T           刪除光標右邊的一個單詞。 Ctrl+Y      &#

10、160;    刪除光標所在行。Ctrl+Shift+    光標在函數(shù)體內(nèi)時,將光標快速移至當前函數(shù)聲明處。 Ctrl+Shift+    光標在函數(shù)聲明行時,將光標快速移至函數(shù)定義處。 Ctrl+Shift+C     聲明一個過程或函數(shù)后,直接生成過程或函數(shù)的名稱、begin、end; Ctrl+Shift+E     光標在Edit窗口和Explorer窗口間切換。 Ctrl+Shift+J     

11、;彈出Delphi語句提示窗口,選擇所需語句將自動完成一條語句。 Ctrl+Shift+T     在光標行加入To-Do注釋。 Ctrl+Shift+Y     刪除光標之后至本行末尾之間的文本。Ctrl+F3          Call Stack窗口。 Ctrl+F4          等于File菜單中的Close項。Ctrl+鼠標轉(zhuǎn)輪    加速滾屏。Shift+F8

12、         調(diào)試時彈出CPU窗口。 Shift+F10        等于鼠標右鍵(Windows快捷鍵)。Alt+F4           關閉所有編輯框中打開的源程序文件,但不關閉項目。CTRL+ENTER 定位到單元文件 Shitf+箭頭 選擇 如果同時按住Alt +Shitf+箭頭, 再進行選擇, 則是一種區(qū)域選擇, 而不是行選擇, 粘貼的 時候也就是插入粘貼了. F9 運行 CTR

13、L+ F9編譯 F8 STEP OVER (步進式調(diào)試不進入子過程) F7 TRACE INTO (步進式調(diào)試同時追蹤進入子過程) F11,F12 切換EDITOR,INSPECTOR,FORM DESIGNER. CTRL+ALT+F11 彈出工程管理器 CTRL+F彈出查找對話框 CTRL+R彈出替換對話框 CTRL+ Shitf+C 類過程代碼補全(只要在定義部分定義一過程或一函數(shù)頭則自動幫你生成 實現(xiàn)部分的套架;反之也成) 但是DELPHI 中怎樣跳格呢? 其實也是有辦法的, 就是CTRL+K,I向后, CTRL+K,U向前. 有時候反復輸入什么東西是不是很繁? CTRL+SHIFT+

14、R錄制鍵盤宏, 比如我經(jīng)常做的就是: 下箭頭-下箭頭-HOME-回車-CTRL+V, 再鍵入一次CTRL+SHIFT+R錄制完成, 之后您可以使用 CTRL+SHIFT+P, 重復宏,還是省了一些事的. 另外在DELIPHI中有一個很有用的快鍵極其有用 這就是CTRL+J;列如:在一過程中你輸入ifb后再按CTRL+J你回去看看效果吧,可能你會大 吃一驚。這就是Code Insight.ctrl+shift+u /塊縮進/反縮進 ctrl+shift+i取消書簽: 在書簽N處,再按一次 SHIFT + CTRL + NCtrl+E 一種查找挺好的,其余的都被你們說玩了按住Ctrl再點對象、過程

15、、函數(shù),轉(zhuǎn)到其定義原型,即便是Delphi VCL源代碼中的Unit。ALT+F4 關閉DELPHI Ctrl+K+O,Ctrl+K+N 將選中的整塊代碼都轉(zhuǎn)為小寫或大寫 Ctrl+F 查找 Ctrl+L 繼續(xù)查找在Inspector,可以用Ctrl+Tab切換Properties頁和Events頁 Ctrl+Enter可進入相應的設置,如在Preperties頁的Font按Ctrl+Enter 在Events中按Ctrl+Enter可進入相應代碼編輯Ctrl+Shift+i : 同時推進2格 Ctrl+Shift+u : 同時退后2格/red還有一招,我經(jīng)常用的,不知大家常不常用 按住ALT

16、用鼠標選擇文本 或者按住ALT加SHIFT,用方向鍵選擇文本 沒試過就趕快去試試!在form上放一個tedit控件,然后在代碼中寫入“edit1.”,稍等一下,會出現(xiàn)提示。 在“edit1.”未寫入前,要想使用這個提示功能,可以按住windows鍵,然后按空白鍵。 (只有windows鍵盤可以用此功能?。〤TRL+SPACE與輸入法沖突,把輸入法的有無輸入法快捷鍵從CTRL+SPACE該為其他鍵組合 就行了,我是改成了CTRL+SHIFT+SPACE. 然后在UNIT中,比如輸入fo這是按下CTRL+SPACE就會出現(xiàn)一系列以fo開頭的變量,函數(shù)。Ctrl+Backspace 后退刪除一個詞。

17、好像是到 . 為止。在object inspector窗口按tab鍵將光標移動到屬性名區(qū),然后鍵入屬性名的開頭 字母可快速定位到該屬性-一、以下快捷鍵指的是對窗體表格上組件的操作: 快捷鍵1: 【Ctrl+UP】向上移動當前組件(精確); 【Ctrl+Left】向左移動當前組件(精確); 【Ctrl+Down】向下移動當前組件(精確); 【Ctrl+Right】向右移動當前組件(精確); 注: 以上快接鍵中再加Shift進行組合(比如【Ctrl+Shift+Right】)即可實現(xiàn)粗略調(diào)整; 快捷鍵2: 【Shift+UP】減小當前組件的高度; 【Shift+Left】減小當前組件的寬度; 【S

18、hift+Down】增加當前組件的高度; 【Shift+Right】增加當前組件的寬度; 注: 以上Up,Left等指的是方向鍵;二、以下快捷鍵指的是在對象觀察器上的操作: 快捷鍵3: 【F11】切換到對象觀察器(注:如果連續(xù)按F11則將實現(xiàn)在對象觀察器、窗體表格、代碼編輯器之間切換); 【Ctrl+Down】下拉當前窗體的組件列表; 【Ctrl+Enter】編輯帶.的屬性值(如組件的字體TFont); 【Alt+Down】下拉組件當前屬性選單隊列(如Align->alNone,alLeft,alRight等); 【Ctrl+Tab】在屬性列表及事件列表中切換;三、菜單快捷鍵: 快捷鍵4

19、: 【F12】,【Shift+F12】,【Ctrl+F12】等在Delphi的菜單中已有定義的在此不必羅嗦.技巧: 如何選擇被組件覆蓋了的窗體(比如某組件的Align屬性為alClient)? 方法一、按ESC鍵,一層一層的往后選,直到窗體被選為當前組件為止; 方法二、按Shift的同時單擊鼠標左鍵,一步即可選定(推薦); 方法三、按F11選定對象觀察器,然后切換到屬性列表,再用上面快捷鍵3中的【Ctrl+Down】Ctrl+UP向上移動選中組件(微調(diào)); Ctrl+Left向左移動選中組件(微調(diào)); Ctrl+Down向下移動選中組件(微調(diào)) ;Ctrl+Right向右移動選中組件(微調(diào));

20、 Shift+UP減小選中組件的高度; Shift+Left減小選中組件的寬度; Shift+Down增加選中組件的高度; Shift+Right增加選中組件的寬度;Ctrl+鼠標拖動 可以選中一個控件上層的其他控件而不選中其本身!DELPHI中的快捷方式一覽(完全正式版)1.SHIFT+鼠標左鍵    先選中任一控件,按鍵后可選中窗體(選中控件后按Esc效果一樣)2.Shift+F8          調(diào)試時彈出CPU窗口。3.Shift+F10        &

21、#160;等于鼠標右鍵(Windows快捷鍵)。4.Shitf+箭頭        選擇5.shift +F12        快速查找窗體并打開6.F7               (步進式調(diào)試同時追蹤進入子過程)7.F8               (步進式調(diào)試不進入子過程)

22、8.F9                運行9.F12               切換EDITOR,FORM10.Alt+F4           關閉所有編輯框中打開的源程序文件,但不關閉項目11.ALT+鼠標左鍵      可以塊選代碼,用來刪除對齊的重復代碼非常有用12.

23、Ctrl+F9          編譯13.Ctrl+shift+N(n=1,2,3,4.) 定義書簽14.Ctrl+n(n=1,2,3,4.)跳到書簽n15.CTRL +SHIFT+N    在書簽N處,再按一次 取消書簽16.Ctrl+PageUp      將光標移至本屏的第一行,屏幕不滾動17.Ctrl+PageDown    將光標移至本屏的最后一行,屏幕不滾動18.Ctrl+        &#

24、160; 向下滾動屏幕,光標跟隨滾動不出本屏19.Ctrl+          向上滾動屏幕,光標跟隨滾動不出本屏20.Ctrl+Home        將光標移至文件頭21.Ctrl+End         將光標移至文件尾22.Ctrl+B           Buffer List窗口23.Ctrl+I   &#

25、160;       同Tab鍵24.CTRL+J           (彈出Delphi語句提示窗口,選擇所需語句將自動完成一條語句)代碼模板25.Ctrl+M           同Enter鍵。26.Ctrl+N           同Enter鍵,但光標位置保持不變27.Ctrl+T  &#

26、160;        刪除光標右邊的一個單詞28.Ctrl+Y           刪除光標所在行29.CTRL+C           復制30.CTRL+V           粘貼31.CTRL+X          &#

27、160;剪切32.CTRL+Z           還原(Undo)33.CTRL+S           保存34.Ctrl+F           查找35.Ctrl+L           繼續(xù)查找36.Ctrl+r      

28、60;    替換37.CTRL+ENTER       定位到單元文件38.Ctrl+F3          彈出Call Stack窗口39.Ctrl+F4          等于File菜單中的Close項40.Ctrl+Backspace   后退刪除一個詞,直到遇到一個分割符41.Ctrl+鼠標轉(zhuǎn)輪    加速滾屏42.Ctrl+O+U  

29、0;      切換選擇塊的大小寫(注意松開O后再按U,Ctrl保持按下)43.Ctrl+K+O         切換選擇塊為小寫(注意松開K后再按O,Ctrl保持按下)44.Ctrl+K+N         切換選擇塊為大寫(注意松開K后再按N,Ctrl保持按下)45.Ctrl+Shift+G     插入GUID46.Ctrl+Shift+T     在

30、光標行加入To-Do注釋47.Ctrl+Shift+Y     刪除光標之后至本行末尾之間的文本48.CTRL+SHIFT+C     編寫申明或者補上函數(shù),絕好!49.CTRL+SHIFT+E     顯示EXPLORER50.Ctrl+Tab         在Inspector中切換Properties頁和Events頁51.CTRL+SHIFT+U     代碼整塊左移

31、2個空格位置52.CTRL+SHIFT+I     代碼整塊右移2個空格位置53.CTRL+SHIFT+    在過程、函數(shù)、事件內(nèi)部, 可跳躍到相應的過程、函數(shù)、事                     件的定義(在interface和implementation之間來回切換)54.CTRL+SHIFT+    在過程、函數(shù)、事件的定義處, 可跳躍到具體過程、函數(shù)、事件內(nèi)部(同上)55.Tab              在object inspector窗口按tab鍵將光標移動到屬性名區(qū),然后鍵入屬性名的開頭           &

溫馨提示

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

評論

0/150

提交評論