tags:

views:

70

answers:

2

Hello everyone,

This is my first question on stackoverflow.

I am trying to debug a program but when I try to run it, it terminates with error message Debug Assertion failed and when I retry to debug it a break-point is created which takes me to vector in this function

#if _HAS_ITERATOR_DEBUGGING
 _Vector_const_iterator(_Tptr _Ptr, const _Container_base *_Pvector)
  { // construct with pointer _Ptr
  _SCL_SECURE_VALIDATE(_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast));
  this->_Adopt(_Pvector);
  _Myptr = _Ptr;
  }

and this line

_SCL_SECURE_VALIDATE(_Pvector == NULL || (((_Myvec *)_Pvector)->_Myfirst <= _Ptr && _Ptr <= ((_Myvec *)_Pvector)->_Mylast));

Please suggest where the problem might be and where to look. Is it some problem with iterator I am using.

Thanks

A: 

Can you post the code of yours which is triggering this error? It seems like their debug check (likely bounds or something similar) is failing, but that assertion would only fail if the input to the function is somehow problematic. For us to really assist you any further we'll need to see the code that invokes this behavior.

jMerliN
+2  A: 

I think you should post your code, but not the STL assertion code (obviously this one isn't the easiest to investigate :)

Anyway, this assertion message usually indicates an attempt to access wrong index (out of bounds) or the similiar write operation in your std::vector or some wrapper around it.

This could also be caused if you store iterators which become invalidated after, for example, after a sequence of insertions.

Kotti