Delphi 調試方法

來源:互聯網
上載者:User
以下內容是個人在使用中的總結,不足之處還望指正。
第一種是堆棧。快速鍵是Ctrl+Alt+S
比如過程A和B都調用了過程C,或者不只如此,過程C在整個程式中大量地被調用。但現已知過程C在一次調用中因參數錯誤而運行失敗了。怎樣找出是哪一個過程傳給C錯誤的參數了?這種情況下,一句一句跟蹤是比較麻煩的。其實只要在過程C的開始的地方打個斷點,中斷的時候調出堆棧視窗就可以看到是哪一個程序呼叫C了,不僅如此,在A中調用B,在B中調用C,這一過程都可以看得一清二楚。在程式raise出一個異常而中斷的時候也可以看出是從哪裡調用了這段子程式的。

第二種是資料斷點。功能表命令是Run->Add Break Point->Data Break Point
這個斷點只能在運行時設。
舉例如下:
要查看某全域變數或某類的屬性何時被修改了的情況。例如要跟蹤一個全域變數g_GlobalVar。在運行後中斷程式,然後選Run->Add Break Point->Data Break Point。在地址一欄輸入@g_GlobalVar,點OK即可。以後在這一變數被改變後就會中斷(注意程式中斷在改變這個變數的語句的下一條語句處,而不是本語句)

有時候調試的時候可以編碼來實現動態斷點:

if [Condition] then
asm
int 3;
end;

作用相當於設定條件斷點,在條件比較複雜的情況下還是非常有用的

注意,這些調試語句需要使用編譯條件控制以避免編譯到正式的版本中。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.