Bad-IP is Bad Instruction Pointer. From the description of your problem, I would assume it is a stack corruption instead of a stack overflow.
+2
A:
Franci Penov
2008-09-25 00:00:51
A:
I can think of the following things that could cause a jump to invalid address, in decreasing order of likelyhood:
- calling a member function on a deallocated object. (as you suspect)
- calling a member function of a corrupted object.
- calling a member function of an object with a corrupted vtable.
- a rouge pointer overwriting code space.
I'd start debugging by finding the code at 005f5c7e and looking at what objects are being accessed around there.
AShelly
2008-09-25 00:06:38
A:
It may be helpful to ask, what could have written the string 'ttie' to this location? Often when you have bytes in the 0x41-0x5A, 0x61-0x7A ([a-zA-Z]) range, it indicates a string buffer overflow.
As to what was actually overwritten, it could be the return address, some other function pointer you're using, or occasionally that a virtual function table pointer (vfptr
) in an object got overwritten to point to the middle of a string.
Mike Dimmick
2008-09-25 13:07:57