C++ 偵錯組態的專案設定

您可以變更專案設定中的 C 或 C++ 偵錯組態 [屬性頁] 對話方塊中所述如何:設定偵錯和發行組態。 下表顯示 [屬性頁] 對話方塊中與偵錯工具相關的設定位置。

注意

針對 UWP 應用程式和以 C++ 撰寫的元件,組態屬性/偵錯分類中的偵錯專案設定並不相同。 請參閱啟動偵錯工作階段 (VB、C#、C++ 和 XAML)

每個偵錯 屬性設定會自動寫入並儲存在 「 每位使用者 」 檔案 (.vcxproj.user) 為您的方案,當您儲存您的解決方案。

在 [要啟動的偵錯工具] 清單方塊中,指定要使用的偵錯工具,如下表中所述。 您的選擇將影響屬性的可見性。

組態屬性資料夾 (偵錯分類)

設定 說明
要啟動的偵錯工具 指定要執行的偵錯工具,並提供下列選項:

- 本機 Windows 偵錯工具
- 遠端 Windows 偵錯工具
- 網頁瀏覽器偵錯工具
- Web 服務偵錯工具
命令 (本機 Windows 偵錯工具) 指定用來啟動將於本機電腦上進行偵錯之程式的命令。
遠端命令 (遠端 Windows 偵錯工具) 遠端電腦上 .exe 的路徑。 依照在遠端電腦上輸入路徑的方式輸入路徑。
命令引數 (本機 Windows 偵錯工具)

遠端命令引數 (遠端 Windows 偵錯工具)
- 指定先前指定之命令的引數。

您可以在這個方塊中使用下列重新導向運算子:

< file
從檔案讀取 stdin。

> file
將 stdout 寫入檔案。

>> file
將 stdout 附加至檔案。

2>file
將 stderr 寫入檔案。

2>>file
將 stderr 附加至檔案。

2> &1
將 stderr (2) 輸出傳送到與 stdout (1) 相同的位置。

1> 和 2
將 stdout (1) 輸出傳送到與 stderr (2) 相同的位置。

在大多數情況下,這些運算子只適用於主控台應用程式。

如果您需要在命令中逸出字元,可以使用 ASCII 值,例如以 %25 取代 %。 如果您使用開始偵錯命令,雙引號會逸出上述命令,例如以「<」取代 <。
工作目錄 指定要進行偵錯之程式的工作目錄 (相對於您的 EXE 所在的專案目錄)。 如果您將這個項目保持空白,工作目錄就會是專案目錄。 若為遠端偵錯,專案目錄會在遠端伺服器上。
附加 (本機 Windows 偵錯工具和遠端 Windows 偵錯工具) 指定是否要啟動或附加至應用程式。 預設設定為 [否]。
遠端伺服器名稱 (遠端 Windows 偵錯工具) 指定要用於應用程式偵錯的電腦名稱 (並非您的電腦)。

RemoteMachine 建置巨集會設定為這個屬性的值;如需詳細資訊,請參閱建置命令和屬性的巨集
連線 (遠端 Windows 偵錯工具) 可讓您在標準和無驗證連線類型之間切換,以進行遠端偵錯。 在 [遠端伺服器名稱] 方塊中指定遠端電腦名稱。 連線類型如下:

- 遠端使用 Windows 驗證
- 遠端未使用驗證

注意:[遠端未使用驗證] 可能容易使遠端電腦因為安全性違規而受到損害。 Windows 驗證模式較為安全。

如需詳細資訊,請參閱遠端偵錯設定
HTTP URL (Web 服務偵錯工具和網頁瀏覽器偵錯工具) 指定要偵錯之專案所在的 URL。
偵錯工具類型 指定要使用的偵錯工具類型:僅限原生僅限受控僅限 GPU混合自動 (預設值) 或指令碼

- 僅限原生適用於非受控 C++ 程式碼。
- 僅限受控適用於通用語言執行平台 (受控碼) 下執行的程式碼。
- 混合會針對受控和非受控程式碼叫用偵錯工具。
- 自動會根據編譯器和 EXE 資訊判斷偵錯工具類型。
- 指令碼會針對指令碼叫用偵錯工具。
- 僅限 GPU 適用於 GPU 裝置或 DirectX 參考轉譯器上執行的 C++ AMP 程式碼。 請參閱偵錯 GPU 程式碼
環境 (本機 Windows 偵錯工具和遠端 Windows 偵錯工具) 為您要進行偵錯的程式指定環境變數。 使用標準環境變數語法 (例如 PATH="%SystemRoot%\...")。 依據合併環境設定而定,這些變數會覆寫系統環境或與系統環境合併。 在右側欄位中按一下,就會出現 [編輯…]。 選取該連結,開啟 [屬性編輯器] 並編輯環境變數。 若要新增多個環境變數,請使用屬性編輯器,並為每行新增一個變數。
合併環境 (本機 Windows 偵錯工具) 判斷 [環境] 方塊中指定的變數,是否要與作業系統所定義的環境合併。 預設設定為 [是]。
SQL 偵錯 (適用所有偵錯工具,但 MPI 叢集偵錯工具除外) 從您的 Visual C++ 應用程式啟用 SQL 程序的偵錯功能。 預設設定為 [否]。
針對加速器類型進行偵錯 (僅適用於 GPU 偵錯) 指定要用來進行偵錯的 GPU 裝置。 安裝相容 GPU 裝置的裝置驅動程式將會加入額外的選項。 預設設定為 GPU - 軟體模擬器
GPU 預設中斷點行為 (僅適用於 GPU 偵錯) 指定是否應針對 SIMD 變形的每個執行緒引發中斷點事件。 預設設定為僅針對每次變形引發中斷點事件一次。
AMP 的預設加速器 指定對 GPU 程式碼進行偵錯時的預設 AMP 加速器。 如果問題是由硬體或驅動程式所造成,而不是您的程式碼所造成,請選擇 [WARP 軟體加速器] 進行調查。
部署目錄 (遠端 Windows 偵錯工具) 指定遠端電腦上的路徑,在啟動之前專案輸出會複製到這個路徑中。 路徑可以是遠端電腦上的網路共用,或是遠端電腦上資料夾的路徑。 預設設定為空白,表示專案輸出不會複製到網路共用。 若要啟用檔案部署,您也必須選取 [組態管理員] 對話方塊中的 [部署] 核取方塊。 如需詳細資訊,請參閱如何:建立和編輯組態
其他要部署的檔案 (遠端 Windows 偵錯工具) 如果 [部署目錄] 屬性已設定,則這是要複製到部署目錄的其他資料夾或檔案清單 (以分號分隔)。 預設設定為空白,表示不會將其他資料夾或檔案複製到部署目錄。 若要將資料夾的內容複寫到部署目錄中的相同資料夾,請指定資料夾名稱。 若要啟用檔案部署,您也必須選取 [組態管理員] 對話方塊中的 [部署] 核取方塊。 如需詳細資訊,請參閱如何:建立和編輯組態
部署 Visual C++ 偵錯執行階段程式庫 (遠端 Windows 偵錯工具) 如果 [部署目錄] 屬性已設定,這會指定是否應將目前平台的 Visual C++ 偵錯執行階段程式庫複製到網路共用。 預設設定為 [是]。

C/C++ 資料夾 (一般分類)

設定 描述
偵錯資訊格式 (/Z7、/Zd、Zi、/ZI) 指定要為專案建立的偵錯資訊類型。

預設選項 (/ZI) 會以 [編輯後繼續] 相容格式建立程式資料庫 (PDB)。 如需詳細資訊,請參閱 /Z7、/Zd、/Zi、/ZI (偵錯資訊格式)

C/C++ 資料夾 (最佳化分類)

設定 描述
最佳化 指定編譯器是否應該將它所產生的程式碼最佳化。 最佳化會變更執行的程式碼。 優化程式碼不再符合原始程式碼,這會使偵錯更加困難。

預設選項 ([停用 (/0d]) 會隱藏最佳化。 您可以在隱藏最佳化的情況下進行開發,然後在建立程式碼的生產環境版本時再將此功能開啟。

連結器資料夾 (偵錯分類)

設定 描述
產生偵錯資訊 (/DEBUG) 通知連結器要包含偵錯資訊,資訊的格式是由 /Z7、/Zd、Zi 或 /ZI 所指定。
產生程式資料庫檔案 (/PDB:name) 在這個方塊中指定程式資料庫 (PDB) 檔案名稱。 您必須選取 ZI 或 /Zi 以指定 [偵錯資訊格式]。
移除專用符號 (/PDBSTRIPPED:filename) 如果您不想要在 PDB 檔中包含專用符號,請在這個方塊中指定 PDB 檔的名稱。 當您以任何會產生 PDB 檔案的編譯器或連結器選項 (例如 /DEBUG、/Z7、/Zd) 建置程式映像時,此選項就會建立第二個 PDB 檔案。 或 /Zi)。 第二個 PDB 檔會省略您不想要出貨給客戶的符號。 如需詳細資訊,請參閱 /PDBSTRIPPED (移除專用符號)
產生對應檔案 (/MAP) 通知連結器在連結期間產生對應檔。 預設設定為 [否]。 如需詳細資訊,請參閱 /MAP (產生對應檔)
對應檔名稱 (/MAP:name) 如果您選擇 [產生對應檔],就可以在這個方塊中指定對應檔。 如需詳細資訊,請參閱 /MAP (產生對應檔)
對應匯出 (/MAPINFO:EXPORTS) 在對應檔中包含匯出函式。 預設設定為 [否]。 如需詳細資訊,請參閱 /MAPINFO (將資訊包括在對應檔中) \(機器翻譯\)。
可偵錯組件 (/ASSEMBLYDEBUG) 指定連結器 /ASSEMBLYDEBUG 選項的設定。 可能的值包括:

- 未發出可偵錯屬性
- 正在進行執行階段追蹤並停用最佳化 (/ASSEMBLYDEBUG)。 這是預設設定。
- 沒有執行階段追蹤並啟用最佳化 (/ASSEMBLYDEBUG:DISABLE)
- <從父代或專案預設值繼承>
- 如需詳細資訊,請參閱 /ASSEMBLYDEBUG (新增 DebuggableAttribute)

您可以使用 Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings 介面,以程式設計的方式在 [組態屬性] 資料夾 ([偵錯] 分類) 中變更這些設定。 如需詳細資訊,請參閱VCDebugSettings

其他專案設定

若要對靜態程式庫和 DLL 等專案類型進行偵錯,您的 Visual Studio 專案必須能找到正確檔案。 當原始程式碼可供使用時,您可以將靜態程式庫和 DLL 作為個別專案新增至相同的解決方案,讓偵錯更加容易。 如需建立這些專案類型的詳細資訊,請參閱建立和使用動態連結程式庫 (DLL) 以及使用靜態程式庫建立。 透過可用的原始程式碼,您也可以選擇 [檔案]>[新增]>[來自現有程式碼的專案] 來建立新的 Visual Studio 專案。

若要對專案外部的 DLL 進行偵錯,請參閱偵錯 DLL 專案。 如果您需要偵錯自己的 DLL 專案,但無法存取呼叫應用程式的專案,請參閱如何從 DLL 專案進行偵錯

另請參閱