某些項目設置也對調試產生影響。 這些設置確定諸如調試器查看的目錄、用於啟動程序的命令和命令參數以及為程序創建的調試信息的類型等內容。 可以在**“屬性頁”**對話框中更改這些設置。
本文介紹可用選項,並介紹如何進行設置。
如何:指定調試器設置
在 Visual Studio 中可為調試器行為指定各種設置,包括如何顯示變量,是否顯示某些警告,如何設置斷點以及中斷如何影響正在運行的程序。 在“選項”對話框中可以指定調試器設置。設置步驟如下:
-
在“工具”菜單上,單擊“選項”。

-
在“選項”對話框中打開“調試”文件夾。

-
在“調試”文件夾中選擇所需選項的類別。
最常用的選項位於“常規”類別中。
-
選擇或清除所需選項。 按 F1 可獲得有關選項的幫助。
如何:設置調試和發布配置
Visual Studio項目中,程序的發行版本和調試版本使用不同的配置。 顧名思義,生成調試版本的目的是用於調試,而生成發行版本的目的是用於版本的最終分發。如果在 Visual Studio 中創建程序,Visual Studio 會自動創建這些配置並設置適當的默認選項和其他設置。 在默認設置下:
-
程序的“調試”配置用全部符號調試信息編譯,不進行優化。 優化會使調試復雜化,因為源代碼和生成的指令之間的關系更加復雜。
-
程序的“發布”配置被完全優化,不包含任何符號調試信息。 根據使用的編譯器選項,可在 程序數據庫文件 (C++)中生成調試信息。 如果以后還必須調試發行版本,創建 PDB 文件就非常有用。
可使用“標准”工具欄或配置管理器在發行版本和調試版本之間進行切換。安裝 Visual Studio 時,會要求您選擇主編程語言的一組開發設置。 如果選擇“Visual Basic 開發設置”,則選擇“調試”或“發布”配置的工具不會出現在工具欄中。 如果您從“調試”菜單中選擇“開始”,Visual Studio 會自動選擇“調試”配置;如果您使用“生成”菜單,則會自動選擇“發布”配置。
快速切換到“調試”或“發布”配置
在“標准”工具欄上,選擇“解決方案配置”列表框中的“調試”或“發布”。 在 Visual Basic 速成版 或 Visual C# 速成版 中沒有此工具欄。
切換到“調試”或“發布”配置
-
在“解決方案資源管理器”中選擇項目。

-
在“視圖”菜單上,單擊“屬性頁”。

-
單擊“生成”或“調試”選項卡(在 Visual C# 或 Visual F# 項目中)、“編譯”或“調試”選項卡(在 Visual Basic 項目中),或者“配置屬性”(在 Visual C++ 項目中)。

-
在“配置”下拉列表中單擊“調試”或“發布”。

C++ 調試配置的項目設置
可在“屬性頁”對話框中更改 C 或 C++ 調試配置的項目設置,這在上節中進行了探討。 下表顯示“屬性頁”對話框中與調試器有關的設置的位置。在“要啟動的調試器”列表框中指定要使用的調試器。 您的選擇將影響屬性的可見性。每當您保存解決方案時,每個調試屬性設置均自動寫入並保存到解決方案的“每用戶”文件 (.vcxproj.user)。
配置屬性”文件夾(“調試”類別)

| 設置 |
說明 |
|---|---|
| 要啟動的調試器 |
指定要運行的調試器,有以下選擇:
|
| “命令”(本地 Windows 調試器) |
指定在本地計算機上用於啟動要調試程序的命令。 |
| “遠程命令”(遠程 Windows 調試器) “應用程序命令”(MPI 群集調試器) |
遠程計算機上的 .exe 的路徑。 可以像在遠程計算機上一樣輸入路徑。 |
| “命令參數”(本地 Windows 調試器和遠程 Windows 調試器) “應用程序參數”(MPI 群集調試器) |
可以在此框中使用下列重定向運算符:
大多數情況下,這些運算符僅適用於控制台應用程序。 |
| 工作目錄 |
指定要調試的程序的工作目錄(相對於 EXE 所在的項目目錄)。 如果保留此設置為空白,則工作目錄就是項目目錄。 對於遠程調試,項目目錄將位於遠程服務器上。 |
| “附加”(本地 Windows 調試器和遠程 Windows 調試器) |
指定要啟動應用程序還是附加到應用程序。 默認設置為“否”。 |
| “遠程服務器名稱”(遠程 Windows 調試器和 MPI 群集調試器) |
指定您要在上面調試應用程序的計算機(不是您的計算機)的名稱,或指定 Msvsmon 服務器名稱。 也可以從“進程”對話框中選擇此計算機名稱(請參見選擇遠程計算機)。 如果在此處指定計算機名稱,則還必須在“連接”中指定連接類型。 RemoteMachine 生成宏被設置為此屬性的值;有關更多信息,請參見用於生成命令和屬性的宏。 |
| “連接”(遠程 Windows 調試器和 MPI 群集調試器) |
允許您在遠程調試的標准與非身份驗證連接類型之間切換。 在“遠程服務器名稱”框中指定遠程計算機的名稱。 連接類型包括:
注意 不帶身份驗證的遠程調試可能會使遠程計算機容易受到安全攻擊。 Windows 身份驗證模式更安全。 有關更多信息,請參見安裝遠程調試。 |
| HTTP URL(Web 服務調試器和 Web 瀏覽器調試器) |
指定您要調試的項目所在的 URL。 |
| 調試器類型 |
指定要使用的調試器類型:“僅限本機”、“僅限托管”、“混合”、“自動”(默認)或“腳本”。
|
| “環境”(本地 Windows 調試器) |
為您要調試的程序指定環境變量。 使用標准的環境變量語法(例如,PATH="%SystemRoot%\ … …")。 根據“合並環境”設置的不同,這些變量重寫系統環境或與系統環境合並。 當在設置列單擊時,出現“編輯…”字樣 單擊該鏈接編輯環境變量。 |
| “合並環境”(本地 Windows 調試器) |
確定在“環境”框中指定的變量是否與操作系統定義的環境合並。 默認設置為“是”。 |
| “SQL 調試”(除 MPI 群集調試器外的所有調試器) |
“C/C++”文件夾(“常規”類別)

| 設置 |
說明 |
|---|---|
| 調試信息格式 (/Z7、/Zd、/Zi、/ZI) |
指定要為項目創建的調試信息類型。 默認選項 (/ZI) 以“編輯並繼續”的兼容格式創建程序數據庫 (PDB)。 有關更多信息,請參見 /Z7、/Zd、/Zi、/ZI(調試信息格式)。 有關更多信息,請參見 PDB 文件和 DBG 文件。 |
“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 選項指定設置。 可能值如下:
|
通過使用 Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings 接口,可以在“配置屬性”文件夾(“調試”類別)中以編程方式更改這些設置。
程序數據庫文件
程序數據庫 (PDB) 文件保存着調試和項目狀態信息,使用這些信息可以對程序的調試配置進行增量鏈接。 當以 /ZI 或 /Zi(用於 C/C++)生成時,將創建一個 PDB 文件。在 Visual C++ 中,/Fd 選項用於命名由編譯器創建的 PDB 文件。 當使用向導在 Visual Studio 中創建項目時,/Fd 選項被設置為創建一個名為 project.PDB 的 PDB。
如果使用生成文件創建 C/C++ 應用程序,並指定 /ZI 或 /Zi 而不指定 /Fd 時,則最終將生成兩個 PDB 文件:
-
VC80.PDB (更籠統地說就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)該文件存儲各個 OBJ 文件的所有調試信息並與項目生成文件駐留在同一個目錄中。
-
project.PDB 該文件存儲 .exe 文件的所有調試信息。 對於 C/C++,它駐留在 \debug 子目錄中。
每當創建 OBJ 文件時,C/C++ 編譯器都將調試信息合並到 VCx0.PDB 中。 插入的信息包括類型信息,但不包括函數定義等符號信息。 因此,即使每個源文件都包含公共頭文件(如 <windows.h>),這些頭文件中的 typedef 也只存儲一次,而不是在每個 OBJ 文件中都存在。
鏈接器將創建 project.PDB,它包含項目的 EXE 文件的調試信息。 project.PDB 文件包含完整的調試信息(包括函數原型),而不僅僅是在 VCx0.PDB 中找到的類型信息。 這兩個 PDB 文件都允許增量更新。 鏈接器還在其創建的 .exe 或 .dll 文件中嵌入 .pdb 文件的路徑。
Visual Studio 調試器使用 EXE 或 DLL 文件中的 PDB 路徑查找 project.PDB 文件。 如果調試器在該位置無法找到 PDB 文件或者如果路徑無效(例如,如果項目被移動到了另一台計算機上),調試器將搜索包含 EXE 的路徑,即在“選項”對話框(“調試”文件夾,“符號”節點)中指定的符號路徑。 如果調試器無法找到 .PDB 文件,則顯示“查找符號”對話框,這將允許您搜索符號或向搜索路徑添加其他位置。
