delphi初級教程之delphi斷點除錯一

2021-07-30 11:06:17 字數 2365 閱讀 1415

所謂斷點,就是在程式**的某一行上設定乙個標記,程式執行到這裡將暫停,由調 試器接管對程式的控制。使用斷點與使用【runto cursor】命令有些相似,都是執行到某 一行後暫停。不同的是,程式中可以設定多個斷點並且能夠給斷點設定條件。

斷點通常設定在有疑點的區域。在遇到斷點之前,程式以全速執行。遇到斷點之後,程式暫時停止執行,以後就可以單步或跟蹤執行程式。

一、源**斷點

要在**編輯器中設定源**斷點,有以下 4 種操作方式。

(1)  把游標移到要設為斷點的行上,按下 f5 鍵。

(2)  用滑鼠左鍵單擊要設為斷點的行的最左端。

(3) 用滑鼠右鍵單擊要設為斷點的行,在彈出的選單中選擇【debug】命令,再選擇【togglebreakpoint】。

(4)  使用【run】選單中的【add breakpoint】 命令,再選擇【sourcebreakpoint】,delphi 將 開啟【add source breakpoint】對話方塊,如圖 源**斷點1所示。

【filename】框用於輸入斷點所在的源檔名(包含路徑)。

【line number】框用於輸入斷點所在的行號。

【condition】框用於設定斷點有效的條件,通常是乙個布林表示式。布林表示式中可 以包含函式呼叫,只要該函式返回布林值即可。

當程式執行到這個斷點時,首先計算該布林表示式的值。如果值為 true,則斷點有效, 程式將暫停執行。如果值為 false,則斷點無效,程式將繼續執行。

【pass count】框用於指定經過斷點多少次後斷點有效。例如,在乙個 for 迴圈中設定 乙個斷點,每次迴圈時都會遇到這個斷點。但並非每次遇到斷點時程式都會暫停,因為還需要經過一定次數後斷點才有效。

【group】框用於對斷點進行分組。可以在這個框內輸入乙個新的組名,也可以選擇一 個已有的組名。一旦若干個斷點編成組,就可以分別使用【disable group】命令和【enable group】命令成組地被禁止或允許它們,還可以給一組斷點指定一系列動作。

注意:設為斷點的行必須是可執行的**行。如果把斷點設在注釋行、空行、變數宣告的行上,偵錯程式將認為斷點無效。

預設情況下,斷點所在的行用白底紅字顯示,並且在裝訂區有乙個紅色的小圓圈。如圖 源**斷點2所示。

源**斷點1

源**斷點2

當滑鼠指向這個小圓圈時,將彈出乙個提示視窗,顯示斷點的條件和經過次數。

二、機器指令斷點

delphi 允許針對某個機器指令設斷點。當程式執行到這個指令時,就會暫停(必須執行到 斷點處設定)。要設定機器指令斷點,有下列幾種方式。

(1)  在 cpu 視窗中用滑鼠左鍵單擊某個指令 的裝訂區。

(2)  在 cpu  視窗中選擇乙個指令,然後按f5鍵。

(3)  在 cpu 視窗中用滑鼠右鍵單擊某個指令, 在彈出的選單中選擇【toggle breakpoint】命令。

(4)  使用【run】選單中的【add breakpoint】命令,再選擇【address breakpoint】,彈出【add address breakpoint】對話方塊,如圖 機器斷點1所示。

機器斷點1

三、資料斷點

delphi 能夠監視指標錯誤。如果記憶體的某個位址被改寫,程式就會暫停,由偵錯程式接管控制權,就好 像遇到斷點一樣。

要設定這樣的斷點,可以使用【run】選單中的【add breakpoint】命令,再選擇【data breakpoint】, 出現【add data breakpoint】對話方塊,如圖 資料斷點1所示。

【address】框用於指定要監視的記憶體位址。可以鍵入乙個變數名。

【length】框用於指定資料的長度(位元組數)。如果 在【address】框中鍵入的是乙個變數名,則【length】

圖  資料斷點1   【add data breakpoint】對話框框可以空白,因為 delphi 會自動計算出該變數的長度。

【condition】框用於設定斷點有效的條件,通常是乙個布林表示式。

【pass count】框用於指定經過斷點多少次後斷點有效。

【group】框用於把斷點進行分組。 要說明的是,當本次除錯結束時,所有的資料斷點都會被禁止。下次除錯時,如果還要用到這些資料斷點,需要使它們有效。

JSP入門初級教程之Taglib Directiv

jsp頁面上使用你可以使用taglib directive來自定義標籤定義乙個標籤庫和字首。其語法 taglib uri uritotaglibrary prefix tagprefix 示例 taglib uri prefix public public loop public loop 描述 t...

HLSL初級教程

hlsl 初級教程 trcj 目錄 前言1.hlsl 入門1.1 什麼是著色器 1.2什麼是 hlsl 1.3怎麼寫hlsl 著色器1.4 怎麼用hlsl 著色器2.頂點著色器 2.1可程式設計資料流模型 2.2頂點宣告 2.3用頂點著色器實現漸變動畫 3.畫素著色器 3.1多紋理化 3.2多紋理效...

SubVersion初級教程

don t tell me why,just tell me how.1 找個rpm或者bin或者tar之類的安裝包,把subvesion安裝好。裝好之後client server admin都在你機器上了。2 首先在你中意的目錄,比如根目錄 下,執行 svnadmin create svnroot...