none
VC程序Release版退出进程时崩溃问题。 RRS feed

  • 问题

  • VC/WTL程序,退出程序则报异常,异常堆栈如下:

    异常发生时的堆栈信息:

    0x6220b58d (msvcp100.dll) 处有未经处理的异常: 0xC0000005: 读取位置 0x010ca690 时发生访问冲突

      msvcp100.dll!__Deletegloballocale()  + 0x1d 字节    <-此处函数调用异常!
      msvcp100.dll!__Deletegloballocale()  + 0x40 字节
      msvcp100.dll!_Init_atexit::~_Init_atexit()  + 0x21 字节
      msvcp100.dll!__CRT_INIT@12()  + 0x1a5 字节
      msvcp100.dll!__CRT_INIT@12()  + 0x2c6 字节
      msvcp100.dll!__DllMainCRTStartup@12()  + 0x1e 字节
      ntdll.dll!_LdrpCallInitRoutine@16()  + 0x14 字节
      ntdll.dll!_LdrShutdownProcess@0()  + 0x141 字节
      ntdll.dll!_RtlExitUserProcess@4()  + 0x74 字节  

    只在某些Win7系统环境下报异常,XP,2003等无问题。

    有高手通过以上信息给些提示么?谢谢。

    2013年5月31日 15:47

全部回复

  • 贴个能重现的project 出来。

    Reply, then visible.

    2013年6月3日 10:31
  • 这个异常是数据被delete后你的程序某一线程访问了被释放的空间。

    这个一般都是程序内部在退出时释放内存有冲突导致的,可能是因为你的程序使用了多线程,而线程之间相互访问数据,在退出是应该先停止所有可能访问数据的地方再释放内存。

    有的系统不会出错那是运气好,或者说,你在win7运气差 :)


    0xDEADBEEF

    2013年6月4日 6:14
    版主