Debug Assertion Failed!

0

Siemano

Utworzyłem projekt w VC++ 6.0 (wszystko działa nienagannie) kiedy przekonwertowuje projekt do VS2008 Professional po skompilowaniu programu (kompiluje sie w porządku) i uruchomieniu go (okno konsolowe) wyskakuje mi następujący bład

Debug Assertion Failed!
Program: <path and="and" filename="filename" here="here">
File: <path the="the" vector="vector" include="include" file="file">
Line: 163

Expression: ("_Myptr + Off <= ((_Myvec
*)(this->_Getmycont()))->_Mylast && _Myptr + _Off >= ((Myvec
*)(this->_Getmycont()))->_Myfirst", 0)

Kompilator wskazuje mi linijke:

_Myt& operator+=(difference_type _Off)
	{	// increment by integer
	_SCL_SECURE_VALIDATE(this->_Has_container());

--------------------> _SCL_SECURE_VALIDATE_RANGE(
_Myptr + _Off <= ((_Myvec *)(this->_Getmycont()))->_Mylast &&
_Myptr + _Off >= ((_Myvec *)(this->_Getmycont()))->_Myfirst);
_Myptr += _Off;
return (*this);
}

Co robić?? :(

0

Naprawić błąd. Weź debugger i zobacz z czego się dokładnie bierze, masz błędy w swoim kodzie, zawalone asercje są tego efektem.

0

Tak tylko dziwi mnie czemu na VC++ 6.0 wszystko działa kompiluje się i uruchamia bez żadnych problemów.

0

Bo stare wersje Visuala były mniej czułe? Tutaj dopiero dodatkowa asercja zgłasza, asercje istnieją wyłącznie w trybie debug, w release ich nie ma. Błąd był wcześniej tylko przeszedł niezauważony.

0

Jak to debugujesz, to gdy wyskoczy ci błąd i "kompilator" wskazuje ci tą klinikę, to odnajdź okienko "call stack", tam będzie lista wywołanych funkcji metod, na tej liście odnajdź swój kod, kliknij to i zobacz czy nie przekraczasz zakresu jakiejś tablicy, vector'a itp itd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1