禁用大型项目​​的PDB

时间:2016-03-31 20:02:39

标签: c++ visual-studio visual-studio-debugging

如何在Visual Studio中禁用PDB? 据我所知,我的项目有超过4096个链接器文件。而Project Property -> Linker -> Debugging据我所知,将禁用调试器窗口中的所有调试信息,我看不到变量值。

错误文字:

  

错误:程序数据库的模块太多

我该怎么办?项目完全不在调试模式下运行更多导致太大,但pdb文件只有200MB。

我可以通过关闭Generate Debug Info来禁用pdb,但我需要在开发时调试信息。

2 个答案:

答案 0 :(得分:1)

如果问题是链接器的模块太多,则可以通过将项目分成多个项目来减少模块数量来解决此问题。这些项目可能仍在同一解决方案中,只是单独的项目。子项目可能会生成静态库或DLL,具体取决于您的需求。尽管如果您使用Windows,则通常首选DLL。这应该允许您为现有项目生成可用的PDB。

这还提供了分别关闭每个库的PDB的选项。

答案 1 :(得分:0)

如果您对项目进行了大量更改,请不要忘记删除PDB文件。 Visual Studio会逐步创建它们(我想使其更快),因此永远不会从PDB文件中删除旧内容。这可能会超出4096个文件的限制。

删除PDB文件,并让Visual Studio从头开始构建它。有机会成功。据我了解,如果您进行重建,则不会删除PDB文件,因此您确实必须将其删除,而不必进行清理/重建。


如果这种限制是真实的而不是短暂的,那么其他人建议的一些解决方案是:

  • 将静态库转换为DLL-每个DLL都有自己的PDB文件
  • 在不需要的地方禁用调试信息