小弟在开发中,今天不知道为什么无法进行断点调试?无论断点在哪里,都会出现:
   Debug Assertion Failed!
   
   File:afxtempl.h
   Line:254
   
   For information on how your program can cause an assertion 
   failure,see the Visual C++ documnetation on asserts.   (Press Retry to debug the application)请问是什么原因,在线等待!!!

解决方案 »

  1.   

    template<class TYPE, class ARG_TYPE>
    AFX_INLINE TYPE CArray<TYPE, ARG_TYPE>::GetAt(int nIndex) const
    { ASSERT(nIndex >= 0 && nIndex < m_nSize);//Line 254
    return m_pData[nIndex]; }说明你的下标没有合法的范围内。
      

  2.   

    是动态数组越界了吧。ASSERT断言错误。不是不能调试哦。
      

  3.   

    那你点击retry,自动就跳转到出错的位置了,
      

  4.   

    是的,如果直接使用Release,则可以运行.
    回复phoenix96_2000(eXMe),那里没有出错呀,不论我把断点放在哪里,都会出错.
    关键是我每次"忽略"后,都可以执行下一步,但是,再执行,又弹出刚才的错误信息,急死我了.
      

  5.   

    无论哪儿都出错? 难道你从initInstance里面设置断点也会出错,你点击retry以后的代码段,贴部分出来看看
      

  6.   

    是的,只要我断点加在哪里,哪里就出错.
    如果在initInstance中的AfxEnableControlContainer();上加,也会出同样的错误.
      

  7.   

    回复an_bachelor(一個單身漢):我是在调试状态下呀
    回复DentistryDoctor(My heart will fly,in the sky.):我怎么找到到底在哪里出界了,因为不论我把断点加在哪里,都报同样的错误.
    回复happyparrot(为何我买彩票从来不中奖?没钱怎么办阿?);直接运行是可以的
      

  8.   

    如果用F10单步执行,则在这里出错:
    call stack:
    WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00133632, int 1) line 27
    WinMainCRTStartup() line 330 + 54 bytes
    KERNEL32! 77e88989()
    程序:
    extern "C" int WINAPI
    _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPTSTR lpCmdLine, int nCmdShow)
    {
    // call shared/exported WinMain
    return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
    }
    中出错
      

  9.   

    看来不是代码的问题了
    检查一下工程的debug设置
      

  10.   

    bobob(静思--潜心研究PDF),请问debug设置有什么讲究吗?不就是设置一下"输出路径"吗?
      

  11.   

    我以前遇到过类似的问题,就是即使在initInstance中加断点,也会出错。最后发现,是由于我的app类中有一些类变量(自定义类),而这些类变量的初始化是先于initInstance执行的。这些类变量的初始化出错了。
    不知道你是不是正好也是这样的问题
      

  12.   

    balloy() ,请问如何看哪些类变量(自定义类)是先于initInstance执行的。
      

  13.   

    全局变量的类,该类的构造函数就会提前执行比如CWinApp的构造函数,因为有一个全局变量theApp
      

  14.   

    把断点设在wWinMainCRTStartup应该就不会出来了
      

  15.   

    谢谢大家,原来全局类在InitInstance()之间就构造了,小弟这才明白.
    我把全局数组都放在全局类中,并在全局类构造函数中初始化,发现大大减少出错次数.
    以前每步执行都会报错,现在只是在第一个断点处出错,再次感谢大家!!!!.这个断点不论加在何处,即使全局类的构造函数中,也会出错,请问为什么?我现在有三个全局类,发现第一,三个全局类的构造函数都没有出错,只是第二个会出错.
      

  16.   

    此类问题,需要注册全局类,全局变量,因为他们是在CWINAPP前被初始化的