文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>《Advanced .NET Debugging》 读书笔记 Listing 2-8: 使用debugger查看对象的Method Table

《Advanced .NET Debugging》 读书笔记 Listing 2-8: 使用debugger查看对象的Method Table

时间:2010-12-25  来源:李志鹏

1. 用WinDBG打开02TypeSample.exe,执行 .load sosex.dll

2. 执行 !mbp 02typesample.cs 41

3. 执行 g

4. 执行 .loadby sos.dll mscorwks

5. 执行 !clrstack –a ,找到heap上面对象存放的地址。

 

6. 执行 dd 0x0000000002773610 ,可以找到该对象在Heap上面的原始的值的分布:

其中0xa, 0x5和0xa是对象的instance里面存放的值,而0x7ff000434d0就是Method table的指针。

 

7. 执行 !dumpmt –md 0x7ff000434d0 ,就可以得到该方法表的描述:

PreJIT表示JIT运行之前就可以有IL了,而JIT运行之后才有的IL,而none表示目前还没有IL。 同时可以发现对于一个只声明了两个method的对象,实际上在heap里面有七个方法,包括四个object继承而来的方法,包括ToString(), Equals(System.Object), GetHashCode()和Finalize()。同时还有一个构造函数ctor。

 

8. 此时根据ModuleDesc可以找到该方法所在的module。执行 !dumpmd 0x000007ff00043420:

可以找到该方法所在的module的地址为0x000007ff00043e30

 

9. 此时执行  !dumpmodule 0x000007ff00043e30 就可以找到该module的信息, 或者执行  !dumpmodule –mt 0x000007ff00043e30 得到该module包含的各种method的信息:

相关阅读 更多 +
排行榜 更多 +
我的武侠梦手游下载

我的武侠梦手游下载

角色扮演 下载
快乐连连看下载免费版

快乐连连看下载免费版

休闲益智 下载
泛滥死者布道手机版下载

泛滥死者布道手机版下载

角色扮演 下载