[英]How do I stop the debugger from stepping into Delphi-supplied units?
調試器在錯誤的源代碼中步入(如F7 ),但我想恢復正常工作模式,其中Delphi基本DCU(庫)只編譯到我的代碼中,並且源不用於調試。
例如,在我的程序中出現錯誤時,調試器正在進入Controls.pas,進入TControl.Click
。 正常情況(安裝后)是Delphi跨越這些方法的。
我應該在沒有調試信息的情況下重新編譯Controls.pas嗎? 如果是這樣,怎么樣?
我通過附加信息擴展這個主題,以便更好地理解:
我們使用Delphi6 Prof. Mouse有什么問題(系統錯誤代碼5)。 因此,我們要重新編譯為Controls.pas以替換Mouse Position getter代碼。 然后:
通過這些步驟,我可以使用鼠標安全代碼編譯源代碼。
好的,但隨后德爾福每次都會在F7上進入Controls.pas,並且在任何例外情況下 - 這都是非常“憤怒”的事情。
無論我從庫路徑中刪除了“Controls.pas” - 然后調試器為它找到原始的“Controls.pas”,然后打開它...... :-(
我們不在任何代碼中使用“Use Debug DCU-s”。
我試圖從編譯器選項中刪除“Debug Information”,但不管怎么說,Delphi打開原來的Controls.pas ...
所以我搜索到Delphi的方式不要進入“Controls.pas”,但是使用我的dcu ......
我希望這能為解決問題提供更好的背景。
我認為您需要Shift + Ctrl + F11 (工具/選項)然后在編譯器中 ,取消選中“使用調試DCU”...然后,如果發生異常,它將不會進入RTL或VCL源。
由於您正在編譯自己的Delphi版本,因此可以在該單元中禁用調試信息。 將{$D-}
添加到相關單元的源代碼中。
我認為解決方案是:
創建一個只使用新的Controls.pas的項目。
取消設置編譯器選項中的“調試信息”選項。
建立dcu
將dcu放入庫文件夾中
從此庫文件夾中隱藏新的Controls.pas。
我不能“進入”controls.pas這個技巧。
問候:dd
我在Delphi XE8上遇到了同樣的問題。
您可以取消選中“Project >> Option >> Compiling >> Use debug .dcus”,它將繼續跟蹤到System unit等等。
我發現阻止它的最好方法是打開Application.dproj文件 - 它是XML格式的。 在其中,您可以按如下方式更改設置:
<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
<DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime> <--- note false
<DCC_DebugDCUs>false</DCC_DebugDCUs>
<VerInfo_Locale>1033</VerInfo_Locale>
<VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
<DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.