我有一个只在发布模式下发生的错误,这是一个问题,因为我无法定期调试代码。断点显示"当前不会命中断点。尚未为此文档加载任何符号。"我已经尝试了人们发布的关于此问题的许多其他解决方案,但似乎都不适用于发布模式。关于如何在发布模式下发现bug或如何在发布状态下定期调试代码,有什么建议吗?
您需要在项目中启用调试符号。
如果这是一个C++项目,你需要做两件事来获得调试信息:
1) 在"配置属性"->"C/C++"->"常规"下的"项目设置"中,需要将"调试信息格式"设置为"程序数据库(/Zi)"。
2) 在"配置属性"->"链接器"->"调试"下的"项目设置"中,确保将"生成调试信息"设置为"是(/Debug)"。
然后,构建(编译和链接)过程将生成一个带有调试信息的PDB。。。通常位于exe文件旁边,但扩展名为pdb。
现在,当您从VisualStudio运行项目时,您应该能够调试和设置断点。
其他语言也有类似的设置,尽管位置略有不同。
默认情况下,发布配置不会构建.pdb文件(其中包含无法加载的符号)。您可以在项目属性中启用此选项。还要注意,您的代码将在默认情况下进行优化。这可能会影响断点,所以当我调试发布版本时,我经常会创建几个断点(由于无法加载符号,这还不是你的问题…)。
如果您在生成程序的同一台计算机上运行,那么它通常会找到.pdb文件和源代码。如果不是,请确保.pdb文件与.exe位于同一目录中,以便运行时/调试器可以找到这些符号。