>hi everyone.
>
[quoted text clipped - 17 lines]
>
>suggestions more than welcome
hi sev,
thx for your suggestions.
> Running a debugger introduces extra data and code pages into your
> process. So while the debugger is active, you're probably overwriting
> some non-critical debug information, or reading some debug info or
> code using invalid pointers.
ok, that explains why it works in debug mode.
> My initial guess is that you're releasing a pointer while it's still
> part of a vector and it's being reaccessed later.
i do remove elements from the vector if some conditions are met. but the
error even occurs if i add more than 13 items to the vector _before_ anything
is removed. no changes are made to the vector but adding items.
the (pseudo) code that adds a pointer to the vector:
funtion addObject()
{
ClassA *ptr = NULL;
ptr = new ClassA;
ptr->someFunction();
vector.push_back( ptr );
ptr = NULL;
}
i don't know what could be going wrong with this code.
is it possible that the push_back() fails with more than x elements because
it's trying to access memory i f**d up with some buggy code earlier?
Larry Brasfield - 16 Mar 2005 22:07 GMT
...
> funtion addObject()
> {
[quoted text clipped - 9 lines]
>
> i don't know what could be going wrong with this code.
That code is fine, at least insofar as it is shown.
(Anything could happen during that member call.)
> is it possible that the push_back() fails with more than x elements because
> it's trying to access memory i f**d up with some buggy code earlier?
That is highly possible. Whenever you see
behavioral changes under circumstance that
should not change the behavior, you should
be thinking "Oh oh, undefined behavior!
Where have I clobbered something that
should have been left alone, used an object
not properly intialized, or abused the heap?"
You should consider yourself fortunate that
the problem shows up while debugging
rather than only when not debugging.

Signature
--Larry Brasfield
email: donotspam_larry_brasfield@hotmail.com
Above views may belong only to me.
whocares - 16 Mar 2005 23:51 GMT
i didn't find the particular error yet, but by taking out some of the
routines that might corrupt the heap i got back to normal behaviour.
thx for your help guys.