我正在研究Visual Studio 2012环境中的C++代码.代码库不是很大(包含在大约10-12个源文件中).我项目中某些功能的执行时间很长(例如,REL模式下为10秒,DEBUG模式下为50秒)
现在在调试时,我经常需要查看在应用程序生命周期结束时执行的函数.有没有办法只为项目中的特定功能和/或文件禁用编译器优化.这将使我能够针对某些计算上广泛的功能进行优化执行
注意:我之前错误地提到了"调试符号"而不是"编译器优化".我基本上是在编译器优化时问这个问题,因为在使用断点调试时很难检查变量值.
您可以在属性 - > C/C++ - >优化对话框中打开或关闭特定文件的优化.这与您将用于整个项目的对话框相同,但每个文件设置将覆盖项目设置.
您也可以使用#pragma optimize( "", off )和围绕特定功能或代码区域,#pragma optimize( "", on )如果您愿意这样做.
无论哪种方式,您都希望为整个程序生成调试符号.拥有它们不会减慢任何速度,并允许您根据需要调试优化的代码.由于局部变量等在观察窗口中通常不正确并且行号可能不完全对齐,因此更加困难,但是在它和反汇编视图之间通常可以告诉您发生了什么.