I am debugging a user dump file and there is this class member function at the top of the the stack trace
msvcr80.dll!__invalid_parameter_noinfo() + 0xc bytes - 1st FRAME
msvcr80.dll!__invalid_parameter_noinfo() + 0xc bytes - 2nd FRAME
myDLL!myClass::myClassMemFunc(int val = 90) - 3rd FRAME
Now, when I jump to the 3rd frame - the "this" pointer value is invalid (the "this" value is retrieved from the ECX register - but the ECX register value got changed in the first two function of the above stack trace - ) - so I am not able to see the actual member variables of my class object -
But I know the address of my class object though - which is 0x0012ECE0
when I am trying to watch that memory address with - (myClass*)(0x0012ECE0)
I get a CXX0019: Error: bad type cast
even (myClass)(0x0012ECE0) generates the same error.
am I doing anything wrong here? - whats the right way to retrieve the class object value?
just a blind guess: try (myDLL!myClass*)(0x0012ECE0)
another question, how can you be sure it is your object's address?
as a side note, try the windbg - it is way simpler to look for objects around your memory/stack.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With