以下內容是個人在使用中的總結,不足之處還望指正。
第一種是堆疊。快捷鍵是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
asmint 3;
end;
作用相當於設定條件斷點,在條件比較複雜的情況下還是非常有用的
注意,這些除錯語句需要使用編譯條件控制以避免編譯到正式的版本中。
delphi遠端除錯
自己的開發機器稱為主機,執行程式的機器稱為目標機 一 在主機編譯執行程式 1 project options linker中的exe and dll options選項組中的include remote debug symbols打上勾,這樣就可以生成rsm為副檔名的檔案,該檔名稱於你的專案同名。2...
Delphi除錯dll檔案
完整的除錯 dll方法如下 1 新建乙個 dll 工程,名字就叫 mydll 吧,編譯後生成 mydll.dll,我們要除錯的就是它了。3 mydlltest.exe 所在目錄中不能有 mydll.dll 重要!4 mydlltest 採用靜態呼叫的方法呼叫 mydll.dll 的匯出函式 重要!完...
怎麼除錯Delphi原始碼
delphi除錯概述2007 06 13 16 15delphi除錯入門級的經典文章,如果是新手的話此文值得好好的讀一讀 delphi除錯概述 除非你的程式只有幾行,否則幾乎不可能一次寫成,因此除錯就非常必要。然而許多初學者不知道如何進行除錯,寫完程式就執行,發現結果不對再看 這樣覺得非常吃力。這裡...