我注意到在使用MS Visual Studio 2008生成新的C++项目时,Release版本包含调试符号 - 特别是启用了以下设置:
C++/General/Debug信息格式设置为Program Database.
链接器/调试/生成调试信息设置设置为是.
我在Visual Studio的早期版本中从未注意到这一点.
因此,除了生成更大的EXE文件之外,启用这些设置是否有任何缺点?
我们已经在我们的商业版本中打开了这些设置多年,没有明显的缺点.不过,好处是巨大的.
我们已经集成了一个崩溃转储打包程序,它将转储与其他一些信息打包在一起并通过电子邮件(经用户同意)发送到公司收件箱.这有助于我们找到可能让我们永远重现并找到其他问题的问题.
虽然它稍微偏离主题,但这里有一个链接,可以帮助您轻松地将崩溃记者包含在C++/Windows应用程序中:http: //www.codeproject.com/KB/debug/crash_report.aspx
注意:但是,在您的版本中不包含PDB文件是明智的.也就是说,您必须保留与发布版本匹配的PDB文件,以便将来可以正确调试问题.如果使用的PDB文件不是使用构建exe的相同代码构建的,那么当您尝试调试dmp时看到的堆栈将是错误的.