C++ 调试配置的项目设置

可以在 属性页 对话框中更改 C 或C++调试配置的项目设置,如 操作方法:设置调试和发布配置中所述。 下表显示了在 属性页 对话框中查找与调试器相关的设置的位置。

注意

配置属性/调试 类别中的调试项目设置对于 UWP 应用和以C++编写的组件不同。 请参阅 启动调试会话(VB、C#、C++ 和 XAML)

当您保存解决方案时,每个调试属性设置会自动写入并保存到与解决方案相关的“用户专用”文件(.vcxproj.user)中。

指定 调试器中要使用的调试器以启动 列表框,如下表所述。 你的选择会影响哪些属性可见。

“配置属性”文件夹(“调试”类别)

设置 说明
要启动的调试器 指定要运行的调试器,具有以下选项:

- 本地 Windows 调试器
- 远程 Windows 调试器
- Web 浏览器调试器
- Web 服务调试器
命令(本地 Windows 调试器) 指定用于启动在本地计算机上调试的程序的命令。
远程命令 (远程 Windows 调试器) 远程计算机上的 .exe 的路径。 输入路径,就像在远程计算机上输入路径一样。
命令参数(本地 Windows 调试器)

远程命令参数 (远程 Windows 调试器)
- 指定要调试的程序的参数。 有关设置命令行参数的详细信息,请参阅 将命令行参数发送到调试者(C++)

可以在此框中使用以下重定向运算符:

< 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 服务调试器和 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 调试器) 指定在启动前复制项目输出的远程计算机上的路径。 该路径可以是远程计算机上的网络共享,也可以是远程计算机上的文件夹的路径。 默认设置为空,这意味着项目输出不会复制到网络共享。 若要启用文件部署,还必须在 Configuration Manager 对话框中选中“部署”复选框。 有关详细信息,请参阅 如何:创建和编辑配置。
用于部署 的其他文件(远程 Windows 调试器) 如果设置了 Deployment Directory 属性,则这是要复制到部署目录的其他文件夹或文件的分号分隔列表。 默认设置为空,这意味着不会将其他文件夹或文件复制到部署目录。 若要将文件夹的内容复制到部署目录中的同一文件夹,请指定文件夹名称。 若要启用文件部署,还必须在 Configuration Manager 对话框中选中“部署”复选框。 有关详细信息,请参阅 如何:创建和编辑配置。
部署 Visual C++调试运行时库 (远程 Windows 调试器) 如果设置了 Deployment Directory 属性,则指定是否应将当前平台的 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 (包括 Mapfile 中的信息)
可调试程序集/ASSEMBLYDEBUG 为链接器 /ASSEMBLYDEBUG 选项指定设置。 可能的值包括:

- 未发送可调试属性
- 运行时跟踪和禁用优化 (/ASSEMBLYDEBUG)。 这是默认设置,
- 无运行时跟踪和启用优化 (/ASSEMBLYDEBUG:DISABLE)
- <从父级或项目默认设置继承>>。
- 有关详细信息,请参阅 /ASSEMBLYDEBUG(添加 DebuggableAttribute)

可以使用 Microsoft.VisualStudio.VCProjectEngine.VCDebugSettings 接口以编程方式在“配置属性”文件夹(调试类别)中更改这些设置。 有关详细信息,请参阅 VCDebugSettings

其他项目设置

若要调试静态库和 DLL 等项目类型,Visual Studio 项目必须能够找到正确的文件。 当源代码可用时,可以将静态库和 DLL 作为单独的项目添加到同一解决方案中,以便更轻松地进行调试。 有关创建这些项目类型的信息,请参阅 创建和使用动态链接库(DLL)使用静态库创建。 在源代码可用的情况下,还可以通过从现有代码选择 文件>新建>项目来创建新的 Visual Studio 项目。

若要调试项目外部的 DLL,请参阅 调试 DLL 项目。 如果需要调试自己的 DLL 项目,但无权访问调用应用程序的项目,请参阅 如何从 DLL 项目进行调试。

另请参阅