2013-09-25 51 views
3

當通過VCL進行調試時(使用debug dcus必須打開!),您經常(有時候大部分時間)會遍歷彙編代碼,尤其是像「_IntfClear」這樣的例程。德爾福調試排除system.pas

(除去System.pas忍不住了,因爲那樣的話則會彈出經常問哪裏system.pas所在)

是否有機會從調試排除單位「系統」?

+2

那麼,你可以把非調試DCU .dcu文件放到lib \ debug文件夾中。這會做你所問,但我一定不會推薦這樣做! –

+0

你也可以用system.dcu w/o調試信息冒險地用debug信息替換system.dcu。 –

+0

德爾福XE7,多平臺模板應用程序之一(新項目>帶導航的選項卡)正是在這樣做,進入所有系統單元。事實證明,創建該模板的人改變了一堆項目設置(包括切換「調試DCU」)。另外,同樣的模板在32位應用程序上失敗(在項目設置中) - 我必須從平臺上完全刪除Win32並重新添加它以使其工作。我想知道那個人是否因工作而被解僱。 –

回答

6

Delphi包含的DCU文件位於Lib Lib文件夾中。調試版本位於Lib/Debug文件夾中。所有的「使用調試DCU」選項都是控制這兩個文件夾中的哪一個出現在項目的庫路徑中,所以當程序鏈接時,包含一組或另一組DCU文件。

既然我們已經發現了「使用調試DCU」選項的魔力,我們可以利用它。要從調試中排除特定的DCU,請啓用「使用調試DCU」,然後只需找到有問題的設備的調試版本,並將其替換爲非調試版本。例如,刪除Lib/Debug/System.dcu並將其替換爲Lib/System.dcu。或者,如果有一個VCL單元需要跟蹤,但是對調試的代碼沒有興趣,那麼請先禁用「使用調試DCU」,然後查找該DCU的調試版本並將其放入它在非調試文件中。

如果你不小心發現自己通過你不感興趣的跟蹤功能,您可以按Shift鍵+ F8 當前函數的「走出去」。最終,您將學會識別通常會導致您不想跟蹤的電話的地點,然後您將按F8「跳過」該代碼而不是F7以「步入」它。