簡體   English   中英

有沒有辦法在不包含系統單元的情況下啟用調試DCU?

[英]Is there a way to enable Debug DCUs without including the System unit?

在Delphi中使用調試DCU非常好,除了系統單元在方法初始化/清理(釋放接口,清除數組,行走異常幀等)時增加了很多開銷。

有沒有辦法用調試DCU運行Delphi,但沒有系統單元?

啟用調試DCU時,您所做的只是更改DCU搜索路徑。 特別是在搜索.dcu文件時使用Debug DCU Path選項指定的路徑

因此,您可以創建一個新目錄並將其添加到“調試DCU路徑”選項中的路徑列表的前面。 在該目錄中放置不包含調試符號的標准System.dcu。

  1. 備份...\\Embarcadero\\RAD Studio\\10.0\\lib\\win32\\debug\\System.dcu
  2. 復制...\\Embarcadero\\RAD Studio\\10.0\\lib\\win32\\release\\System.dcu to ...\\Embarcadero\\RAD Studio\\10.0\\lib\\win32\\debug\\System.dcu
  3. 在將修補程序或更新應用於Delphi之前,請還原原始System.dcu文件。

重復其他平台:將win32替換為其中任何一個,具體取決於您運行的Delphi版本。

  • android
  • iosDevice
  • iossimulator
  • osx32
  • win64

編輯2:

重復其他支持的語言而不是英語:用debug\\##替換debugrelease ,並為你想要使用的每種語言## release\\##

目前支持的語言我知道:

  • de (德國)
  • fr (法文)
  • jp (日文)

編輯:

這種方式運行良好,即使安裝順序混淆了您在Delphi XE / XE2時代不止一次發生的搜索路徑。

它適用於平台的releasedebug分支中的任何單元。

編輯3:

如果您的Delphi版本沒有遭受庫路徑覆蓋,那么您可以使用Davids建議執行以下步驟:

  1. 前面的路徑如$(BDSLIB)\\$(Platform)\\nodebug;$(BDSLIB)\\$(Platform)\\debug\\$(LANGDIR); 到Delphi Debug DCU Path。
  2. 將您不想調試的任何英語單元從$(BDSLIB)\\$(Platform)\\release $(BDSLIB)\\$(Platform)\\nodebug$(BDSLIB)\\$(Platform)\\nodebug用於所有上述平台。
  3. $(BDSLIB)\\$(Platform)\\release\\$(LANGDIR);復制您不想調試的任何非英語語言單元$(BDSLIB)\\$(Platform)\\release\\$(LANGDIR); $(BDSLIB)\\$(Platform)\\nodebug\\$(LANGDIR); 對於所有上述平台。

nodebug目錄不必位於$(BDSLIB)領域,但保留$(Platform)非常方便,因為它比Win32更容易支持其他平台。

我已經在所有支持的平台上使用Delphi XE3和XE5進行了測試,並且它可以工作。 在XE和XE2中,我有時會用錯誤的值覆蓋搜索路徑的某些部分,因此我更喜歡第一種方法。

下圖是針對Delphi XE3和OSX的。

它支持英語調試DCU翻譯后的調試DCUS

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM