我有几台机器跑同一个进程,硬件是一样的,操作系统也是一样的,但是有一台机器程序退出的时候,会弹出**.exe已停止工作,下面是详细信息。问题签名:
  问题事件名称: APPCRASH
  应用程序名: **.exe
  应用程序版本: 0.0.0.0
  应用程序时间戳: 51bfd091
  故障模块名称: ntdll.dll
  故障模块版本: 6.1.7601.17725
  故障模块时间戳: 4ec49b60
  异常代码: c0000006
  异常偏移: 0001f7e4
  OS 版本: 6.1.7601.2.1.0.256.48
  区域设置 ID: 2052
  其他信息 1: abcc
  其他信息 2: abcc8f7853b48d9807d6d51eb1fa5df9
  其他信息 3: abcc
  其他信息 4: abcc8f7853b48d9807d6d51eb1fa5df9联机阅读隐私声明:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
  C:\Windows\system32\zh-CN\erofflps.txt我担心是**.exe和机器上安装的软件有什么冲突导致的,大家有没有遇到这样的问题,交流指导一下,谢谢了!
所有的软杀都卸载了,同样会出现。

解决方案 »

  1.   

    有可能是这种,也有可能是代码问题。用dmp文件定位下
      

  2.   

        有可能是缺陷造成的,就是退出前已销毁某个变量或已停止某个进程工作,但其它进程却还在操作这个变量或进程.这种情况一般发生在多线程,而且不会每次都会出现.
        另外就是操作系统的问题,比如某个DLL的被修改(以前WORD和VC的某个DLL冲突,需要先安装VC再安OFFICE,好象是OFFICE2002,忘了)
      

  3.   

    楼上的同志,如何用dump定位。
    现在发现的是:程序是个控制台程序,除了main之外只开了一个线程A,main等待A线程退出的时候退出。也就是总共有两个线程。弹出**.exe停止工作的时候,这个进程只剩下一个线程了,进程列表里面还有。
    有没有办法确定是哪个线程没退出。不用debugview之类的打印,因为我打印的结果是,已经走到了main的最后一行 return 0 之前。
      

  4.   

    Windows 7 还是比较严格的。即使非常简单的程序有内存泄露在 XP 上都没有任何问题,但是在 Windows 7 上就有一定概率出现这个提示。面向 Windows 7 的程序对代码要求很高,出现一丁点问题都有可能导致程序停止。
      

  5.   

    那就在WIN7上做程序编译这样看更方便