.NET应用程序调试—原理、工具、方法(15)

来源:未知 责任编辑:责任编辑 发表时间:2015-05-17 16:44 点击:

624ac448        8          484 System.Int32[]
624ad3a0         2          616 System.Globalization.CultureData
624abe78       26           728 System.RuntimeType
624ab680        7         2910 System.Char[]
6245ab98       25        18064 System.Object[]
624aacc0     3283        85972 System.String
00363a78        7      2031754       Free
624696f8        2      2097184 System.Byte[][]
624acf54   301232     304844554 System.Byte[]

最后一个显然内存占用比较高,占了304844554 bite,如果你想在此情况下知道对象的内存地址你就直接使用!dumpheap ,不带任何参数。由于此命令会导致很多输出,我这里就写出输出内容了。通过!dumpheap 会得到内存很高的对象地址,02d55368,这个地址就是System.Byte[]对象,为了找到对象在哪里分配的,我们需要使用!gcroot 02d55368,命令,查看对象的根在哪里。

0:000> !gcroot 02d55368
Thread 143310:
   0028f364 004f0100 OrderManager.Program.Main(System.String[]) [e:\NETDebug\DebugDemoProject\OrderManager\Program.cs @ 22]
       ebp+18: 0028f380
           ->  01b746c0 System.Collections.Generic.List`1[[System.Byte[], mscorlib]]
           ->  02d55368 System.Byte[][]

知道了根就好办多了,直接看源代码就能发现问题。如果你还不死心的话可以使用!dumpobj 查看List对象。

0:000> !dumpobj 01b746c0
Name:         System.Collections.Generic.List`1[[System.Byte[], mscorlib]]
MethodTable: 00163170
EEClass:     6211c8b0
Size:        24(0x18) bytes
File:         C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
     MT    Field   Offset                 Type VT     Attr    Value Name
6245ab98   4000c75        4      System.Object[]  0 instance 02d55368 _items
624ac480   4000c76        c         System.Int32  1 instance   301229 _size
624ac480   4000c77       10         System.Int32  1 instance   301229 _version
624ab060   4000c78        8        System.Object  0 instance 00000000 _syncRoot

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • 用C#制作屏幕捕获程序
  • 遍历ArrayList易犯错误
  • 使用C#编写LED样式时钟控件
  • C#对XML操作:一个处理XML文件的类(1)
  • 怎样用C#实现完整文档打印功能
  • DataList嵌套问题 如何删除内层子DataList的记录
  • 使用c#+(datagrid控件)编辑xml文件
  • C#生成CHM文件(应用篇)之代码库编辑器(5)【总结、程序、源代码】
  • .NET简谈自定义事务资源管理器
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索 - 移动版 - 返回顶部
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1