Windows 在Visual Studio上查看内存地址处的类对象
我正在调试一个用户转储文件,在堆栈跟踪的顶部有一个类成员函数Windows 在Visual Studio上查看内存地址处的类对象,windows,visual-studio,debugging,Windows,Visual Studio,Debugging,我正在调试一个用户转储文件,在堆栈跟踪的顶部有一个类成员函数 堆栈跟踪是这样的- msvcr80.dll__无效的参数\u noinfo()+0xc字节-第一帧 msvcr80.dll__无效的参数\u noinfo()+0xc字节-第二帧 我的DLL!myClass::myClassMemFunc(int val=90)-3帧 现在,当我跳到第三帧时,“this”指针值无效(“this”值是从ECX寄存器中检索的,但是ECX寄存器值在上面堆栈跟踪的前两个函数中发生了更改-) 所以我无法看到
- 堆栈跟踪是这样的-
作为补充说明,请尝试windbg—查找内存/堆栈周围的对象要简单得多。这可能对现在的用户转储没有帮助,但对于将来的用户转储,请将优化设置“忽略帧指针”设置为否。这有助于使用“This”指针和本地变量。这可能是由于嵌套类造成的 例如: 甲级 { B类 { int i; }; };
类强制转换(B*)(0x12345678)将失败,但(A::B*)(0x12345678)将成功我通过添加dll上下文解决了此问题:
{,,myDLL.dll}(myClass*)(0x028073a8)