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 專案進行偵錯。