/DEBUG (產生偵錯資訊)

連結 /DEBUG 器選項會建立可執行檔的偵錯信息檔。

語法

/DEBUG[:{FASTLINK||FULLNONE}]

備註

選項 /DEBUG 會將連結物件和連結庫檔案中的偵錯資訊放入程式資料庫 (PDB) 檔案中。 它會在後續的程式建置期間更新 PDB。

為了偵錯而建立的可執行檔(EXE 或 DLL 檔案)包含對應 PDB 的名稱和路徑。 當您對程式偵錯時,偵錯工具會讀取內嵌名稱,並使用 PDB。 鏈接器會使用程式的基底名稱和延伸模組 .pdb 來命名程式資料庫,並內嵌其建立所在的路徑。 若要覆寫此預設值,請設定 /PDB 選項並指定不同的檔名。

此選項 /DEBUG:FASTLINK 可在Visual Studio 2017和更新版本中使用。 此選項會產生有限的 PDB,以編製物件檔和連結庫中用來建置可執行文件的偵錯資訊索引,而不是建立完整複本。 您只能使用這個有限的 PDB 從建立二進位檔及其連結庫的電腦進行偵錯。 如果您在其他地方部署二進位檔,您可以從組建計算機遠端偵錯它,但不直接在測試計算機上進行偵錯。 自 Visual Studio 2019 以來, /DEBUG:FULL 鏈接時間已大幅改善,而且 /DEBUG:FASTLINK 不一定比 更快 /DEBUG:FULL。 由於 /DEBUG:FASTLINK 不再提供大型建置時間改善,因此與的偵錯體驗較 /DEBUG:FULL慢,因此不再建議使用此選項。

/DEBUG:FASTLINK PDB 可以轉換成完整的 PDB,您可以部署至測試機器進行本機偵錯。 在 Visual Studio 中,使用 [屬性頁 ] 對話方塊,如下所述,為專案或解決方案建立完整的 PDB。 在開發人員命令提示字元中 mspdbcmf.exe ,您可以使用工具來建立完整的 PDB。

此選項會將 /DEBUG:FULL 所有私人符號資訊從個別編譯產品(物件檔案和連結庫)移至單一 PDB,而且可能是連結最耗時的部分。 不過,在沒有任何其他組建產品可用時 (例如在部署可執行檔時),完整 PDB 可用來偵錯可執行檔。

此選項 /DEBUG:NONE 不會產生 PDB。

沒有 /DEBUG 額外自變數的指定,相當於指定 /DEBUG:FULL

編譯程式的 /Z7 [C7 兼容] 選項會導致編譯程式將偵錯資訊保留在物件 (OBJ) 檔案中。 您也可以使用 /Zi [程序資料庫] 編譯程式選項,將偵錯資訊儲存在 OBJ 檔案的 PDB 中。 鏈接器會先在 OBJ 檔案中寫入的絕對路徑中尋找物件的 PDB,然後在包含 OBJ 檔案的目錄中尋找該物件的 PDB。 您無法指定物件的 PDB 檔案名稱或連結器位置。

/INCREMENTAL 指定 時 /DEBUG 為隱含。

/DEBUG設定預設/OPT值從 REF 變更NOREFICFNOICF,因此如果您要原始預設值,則必須在 選項之後/DEBUG明確指定 /OPT:REF/OPT:ICF

無法建立包含偵錯資訊的 EXE 或 DLL。 偵錯資訊一律放在 OBJ 或 PDB 檔案中。

在 Visual Studio 開發環境中設定這個連結器選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [鏈接器偵>] 屬性頁。

  3. 修改 [ 產生偵錯資訊 ] 屬性,以啟用或停用 PDB 產生。 此屬性預設會在 Visual Studio 2017 和更新版本中啟用 /DEBUG:FASTLINK

  4. 修改 [ 產生完整程序資料庫檔案 ] 屬性,以針對每個累加組建啟用 /DEBUG:FULL 完整的 PDB 產生。

若要以程式設計方式設定這個連結器選項

  1. 請參閱 GenerateDebugInformation

另請參閱

MSVC 連結器參考
MSVC 連結器選項