这有一个系统仿真程序,用C语言写的,生成.exe文件在控制台运行。在控制台显示当前运行的进度。原来是可以正常运行完的,多次运行都正常。现在,间歇性地在不同的进度百分比处退出,且没有任何错误提示。偶尔也能正常运行完。在没有运行完就退出的情况下,可以得到部分数据,把这部分数据与原来正常运行得到的数据的对应部分对比,竟也是完全相同。请高手帮帮分析下可能是哪里出问题了。目前关键是这个问题没法完全重现啊。

解决方案 »

  1.   

    多添加以下Printf输出等,来定位出错的地方..
      

  2.   

    如果程序是你自己写的就按oyljerry说的用Printf输出些信息看看
    不过怀疑是不是硬盘的问题
      

  3.   

    得定位啊
    搜索crashrpt,崩溃后形成dump文件
      

  4.   

    在代码中使用 signal/setjmp/longjmp 等函数捕获异常,记录最后一次正常运行的行号,然后进行分析吧;能调试运行分析最好。
      

  5.   

    直接Debug调试,Debug->Exception->异常全开,
      

  6.   


    程序虽不是自己写的,但相对也比较熟了,问题是程序太大了,从哪儿开始printf呀?
    另外,为什么觉得会是硬盘的问题呢?现在我们是多个人通过不同的用户名使用同一个服务器。
      

  7.   


    [color=#FFCC00]就是每次退出的地方不一样,没法重现和上次异常退出完全相同的模式
    [/color]
      

  8.   


    自己写的assert的异常是全开的,您这个怎么操作,我用的是VC 6.0的环境请教。
      

  9.   

    VC6 也有,Debug调试,你会看到,菜单上多了个 "Debug菜单",这个 "Debug菜单" 下有个 Exceptions,选择它你会看到一个对话框,在异常列表中选中所有异常,再选择 "Stop always"(我的是英文版),点"OK"!然后有异常的时候,VC 便不会自己处理,全部报异常出来。这样你就可以看到什么地方有异常了。