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 项目进行调试。