VS2008, 我生成一mfc dialog程序, 编译成release版, 想试试release下调试, 
void CTestMFCDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
int i = 0;  // 我在这里设置了断点, 没用, 直接跳到下面的大括弧前了; 
// 如果我在C/C++页的Optimiation那设置Disabled就可以了, 但如果我不想更改呢, 就是默认的Maximize, 其他哪里要设置呢??????
// 在link页的Debugging页的Generate Debug Info一直都设为Yes(/DEBUG)
  
}如果我在上面加上CString str = L"";这一句并设好该句断点, 则不管优化否, 都可以跟人, 真是太奇怪了! 希望达人赐经

解决方案 »

  1.   

    优化选项打开后,代码就被编译器处理过了,并不严格按照代码的顺序执行了,有的没啥用的语句直接被干掉了,所以很可能无法停下。这是有点随机的,所以调试release,一般都把优化关闭。
      

  2.   

    都release了还调试啊。这本就不是为调试准备的啊。使用Debug不行?
      

  3.   

    但各位想想, 你是否要编译成release版进行发布, 还要打包进行安装到其他机器上, 在以后的使用中如果出现很诡秘的bug不好解决, 你总得要调试release版的吧? 
      

  4.   

    http://www.cygnus-software.com/papers/release_debugging.html
      

  5.   

    关闭优化,/Od
    生成调试信息,/ZI
      

  6.   

    真是奇怪。为什么非要在Release调试?除非你Debug下正常,而Release下出现了灵异事件
      

  7.   

    输出LOG。对于产品的话,最好弄个开关,打开开关就可以输出LOG,关闭则忽略LOG输出语句,这样客户发现问题也容易反馈