在DEBUG版本下面没办法让程序挂掉,但转到Release版本后,在做了一些操作后,程序会弹出Run time error然后挂掉,不知道为什么,不知道什么情况下会出现这种情况,本人估计是编译器做了优化后,引起的问题?或者还有其他原因?请高手指点,或者列举出现这种情况的原因,还有解决方案,因为Release版本只能远程登陆到远程服务器去操作,所以没办法在本地使用,拿不到记录文件等等.

解决方案 »

  1.   

    写日志文件,或者生成map文件,map文件中列出了所有函数的地址,然后根据崩溃时候的错误地址,减去加载时候的偏移量,就可以大致知道是在那个函数出现问题了。
      

  2.   

    这个得考验调试功底了,没有捷径,不过你可以在Release下面放进调试信息,把优化去掉就可以了
      

  3.   

    有一点建议:在工程设置中去掉编译器优化,因为优化有时候确实会引发一些问题,特别是cpu不同的时候至于楼主的具体问题,上边有人提到的这些办法之外没什么好办法
      

  4.   

    的确是比较烦恼,程序是一个MDI,左边是一个树形控件,这个是公司的框架写的,其他开发人员可能对树的SelectChange做了些操作,所以当左边的树项目比较多的时候,再把树给展开,再点某些树项的时候,程序就会挂掉,我想这个应该可以把范围缩小到树的结点切换这些消息处理上面吧.我们是没办法把编译器优化这个选项去掉的,因为没有这个权限,就连发布版本也是在外国编译的,不过我们可以上传代码,远程服务器在一天内可以把服务器上的代码编译生成发布版本,所以感觉是非常麻烦.出现RUN TIME ERROR,可以认为是调用了一些C++的函数出现了问题吗?或者说对一些C++函数调用不大符合规范?