Visual Studio 的调试“未使用调试信息生成二进制文件”

问题

在给代码打断点进行调试时,常出现的问题为“未使用调试信息生成二进制文件”,断点红心圆为空心的。
image

在顶部菜单栏中,点击 "调试"->“窗口”->“模块” 打开模块窗口。

符号状态 (Symbol Status):

  • 已加载符号 (Symbols Loaded):✅ VS 已成功找到并加载了与该模块匹配的 .pdb(调试符号)文件。
  • 未使用调试信息生成二进制文件:模块在编译时没有生成调试信息(没有使用 /Zi 或 /ZI 编译)。
  • 包含/排除设置已禁用符号加载: 如果禁用了符号加载,则 VS 不会加载模块的符号。

解决办法

1. 修改项目配置,启动调试信息生成(最常用)

  1. 打开项目属性:在解决方案资源管理器中,右键点击你的项目,选择属性

  2. 切换配置:确保右上角的配置下拉框选择的是Release

  3. 找到调试信息设置:

    • 进入 C/C++ -> 常规

    • 找到调试信息格式选项。

  • 将其从默认的改为程序数据库 (/Zi)用于编辑并继续的程序数据库 (/ZI)。(通常 /Zi 就足够了)。
  1. 链接器设置(确保生成完整的 PDB):

    • 进入 链接器 -> 调试

    • 找到生成调试信息选项,确保其设置为是 (/DEBUG)

    • 查看生成程序数据库文件选项,它通常默认为 $(OutDir)$(TargetName).pdb,这就是生成的 PDB 文件路径。

  2. 确认优化级别(可选但重要):

    • 仍然在 Release 配置下,进入 C/C++ -> 优化

    • 优化选项默认是最大化速度 (/O2)最小化大小 (/O1)。这是 Release 模式性能好的关键。

    • 重要提示:启用调试信息不会禁用代码优化。这意味着你的代码仍然会被高度优化,但调试起来可能会有些“反直觉”,例如变量被优化掉、语句执行顺序改变等。但这正是为了模拟真实发布环境的问题。

  3. 重新生成解决方案:点击生成菜单下的重新生成解决方案。现在生成的 Release 版本就应该附带 PDB 文件了。

posted @ 2025-09-05 17:56  一楼二栋  阅读(125)  评论(0)    收藏  举报