views:

185

answers:

3
+2  A: 

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.

Franci Penov
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
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