WinDBG技巧:this指针的常见误区 (ECX寄存器存放this指针)
来源:互联网 发布:星光模拟器打不开软件 编辑:程序博客网 时间:2024/05/17 03:28
用Windbg 调试Win32程序的时候我们经常会输入命令 dt -b this 来查看类的成员变量值。
Windbg 默认会用寄存器ECX 里面的值作为this 指针地址,然后打印出类里面的所有成员变量。 其实这样是有时候是错误的。虽然this指针多数时候都会被存在寄存器ECX, 有些C++编译器在做代码优化之后会把 this指针放在其他寄存器里面,比如ESI。 所以在调试的时候还需要读一下汇编代码来确定this 在哪个寄存器里面。比如我们看到 MOV EAX, dword ptr [ESI + 0x48h],就可以判断ESI 是this 指针。
如果在ESI,可以用以下命令来打印:
?? (MyClass*)@ESI
就可以了。
阅读全文
0 0
- WinDBG技巧:this指针的常见误区 (ECX寄存器存放this指针)
- WinDBG技巧:this指针的常见误区 (ECX寄存器存放this指针)
- Windbg 的this指针陷阱
- C++中this指针存放在哪里
- c++ this指针常见知识点
- 奇怪的 this 指针
- this指针的用法
- this指针的总结
- this指针的用处
- this指针的用法
- 类的this指针
- this指针的使用
- js的this指针
- this指针的使用
- c++的this指针
- c++的this指针
- this 指针的使用
- 隐含的 this 指针
- 关系型数据库和非关系型数据库概述
- 实训复习篇(一)
- 注解
- 线段树-I Hate It (点更新,求点)
- Oracle 之 AIO (异步io)
- WinDBG技巧:this指针的常见误区 (ECX寄存器存放this指针)
- 1050. 螺旋矩阵(25)
- VS2010&MFC对话框编程(1)——对话框控件简介
- K-means中的K值选择与初始点的选择
- java源码解析
- 线段树区间更新(2)(lazy)(区间都变为v)(序号从1开始)(O(logn))模板(hdu1698)
- Mybatis实现分页
- 网易---合唱团----动态规划
- 总结-2017/9/7