none
请教一个关于 dbgheap.c 1317行 出现断言信息的问题 RRS feed

  • 问题

  •  我编译生成的可执行文件(.exe)在windows XP professional  的环境上运行是正常的,但是每次放到  server 2003 的环境上就会出现dbgheap.c 1317 行的断言,导致程序起不来,但是我点击”重试“按钮以后,又正常的起来了。。但是断言每次都会出,调试之后我把出断言的地方注释之后,断言依旧会出,实在是搞不清楚状况了,求大神指点~~

        调试时显示的信息如下:

          windows 已在 xxx.exe 中触发一个断点。

           其原因可能是堆被破坏,这说明xxx.exe中或它加载的任何DLL中有Bug。

          原因也可能是用户在xxx.exe具有焦点时按下了 F12。

         输出窗口可能提供更多诊断信息。 

    调用堆栈里显示

      ntdll.dll ! 7c94a229()

      [下面的框架可能不正确和/或缺失,没有为ntdll.dll 加载符号]

    2012年7月20日 3:14

答案

  • 出现这个断言是因为你的程序有数组越界的BUG

    程序在调试的时候检查出来了

    数组越界并不是在所有系统上都会导致程序崩溃,因为不同系统对内存的控制略有不同,但是并不代表你的程序没有问题


    0xDEADBEEF


    2012年7月23日 1:52
    版主