使用Bazel构建Windows Release版exe VS调试器无法加载符号求助
需要在windows.rc中补充以下配置即可解决问题:
- 新增链接器参数生成调试符号文件(PDB)
build --linkopt=/DEBUG/Z7仅负责将调试信息写入编译生成的.obj文件,必须添加该参数让链接器将所有.obj中的调试信息汇总生成独立的PDB文件,这是VS识别调试信息的必要配置,不会影响Release模式的优化效果。 - 新增配置让PDB文件输出到exe同级目录
Bazel默认会将生成的PDB文件存放到独立的输出目录,不会和最终exe放在同一路径,VS调试时默认仅会从exe同级目录、系统符号路径检索符号,该配置可以让PDB随exe输出到build --output_groups=+pdb_filesbazel-bin的对应目录下。 - 可选配置优化Release版调试体验
该参数是VS专为Release优化版本提供的调试信息增强选项,可以在不影响现有优化等级的前提下,生成更丰富的调试信息,方便调试过程中查看变量、调用栈等内容。build --copt /Zo
你现有配置无需修改:当前使用的/GL全程序优化、/LTCG链接时代码生成配置和调试符号生成完全兼容,不需要调整优化相关参数,完全符合全优化Release版本的需求。
构建完成后确认bazel-bin目录下你的目标exe同级路径存在同名.pdb文件,再用VS附加进程即可正常加载调试符号。
内容的提问来源于stack exchange,提问作者matthias_buehlmann
相关产品推荐
相关产品推荐

