由于一些原因没办法在Debug下运行所以只有Release下运行,运行过程中偶尔会出现崩溃的情况,请问有没有办能找出崩溃的代码?

解决方案 »

  1.   

    release也是可以调试的,进项目设置选择生成调试信息,不优化,等
      

  2.   

    是不能调试运行还是不能用Debug版?
      

  3.   

    试试这个
    Add Crash Reporting to Your Applications with the CrashRpt Library
    (By Mike Carruth)
    http://www.codeproject.com/KB/debug/crash_report.aspx
      

  4.   

    可以用__try搭配GetExceptionInformation宏来捕获异常并得到异常信息。
      

  5.   

    release跟debug的区别只是一些编译器选项的设置不同啊。这里有介绍:
    http://topic.csdn.net/t/20030312/10/1520262.html
      

  6.   

    release也是可以调试的,进项目设置选择生成调试信息,不优化,等 要不就
    try
    {
    ....
    }
    catch
    {
    ....
    }
      

  7.   

    我觉得最好的办法是在代码中加入log信息,写入log文件,那样直接察看log文件就能知道问题所在了
      

  8.   

    写日志,或者是在疑似的几个方法中抓CException扔出messgbox
      

  9.   

    1、Release 加上调试信息,调试运行,崩溃后看堆栈信息,就知道了。
    2、直接运行,崩溃后用windbg attach上也可以看堆栈信息。
      

  10.   

    最简单的办法可以写log或MessageBox
      

  11.   

    项目属性-->C/C++-->General-->Debug Info 选 Program Database
    就可以设断点了。崩溃后有堆栈信息。
    如果嫌断点不准确,可以在项目属性里禁掉所有的优化。
      

  12.   

    生成PDB就可以了.
    还有一种方法就是程序崩溃时进行程序堆栈的转储,不过还是需要生成PDB.
      

  13.   

    我也一直都是用的Release调试!
      

  14.   

    我原来维护的一个程序也是这样,我是用messagebox进行调试的-_-!
      

  15.   

    把感觉出错的地方打出来看看messagebox
      

  16.   

    生成MAP文件,根据崩掉的地址,找到函数体
      

  17.   

    多用几个messagebox()测试一下。看看到底是出在那个地方.貌似这个方法比较粗.要是一些协调的问题。貌似就无能威力了