使用windbg导出dump文件

.dump /ma D:\testdump.dmp

gchandles命令列出句柄,同时列出句柄引用的对象,演示代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Data;
using System.Runtime.InteropServices; public class Example
{
static void Main(string[] args)
{
int[] arry = new int[];
for (int i = ; i < ; i++)
{
arry[i] = i;
}
GCHandle h1 = GCHandle.Alloc(arry, GCHandleType.Pinned);
Console.ReadKey();
}
}

windbg附加后,运行至ReadKey处,运行GCHandles

0:000> !gchandles
          Handle Type                  Object     Size             Data Type
00000000000a13a8 Strong      00000000027f2070       64                  System.Security.PermissionSet
00000000000a13b0 Strong      00000000027f1440       48                  System.SharedStatics
00000000000a13b8 Strong      00000000027f1368      160                  System.Threading.ThreadAbortException
00000000000a13c0 Strong      00000000027f12c8      160                  System.Threading.ThreadAbortException
00000000000a13c8 Strong      00000000027f1228      160                  System.ExecutionEngineException
00000000000a13d0 Strong      00000000027f1188      160                  System.StackOverflowException
00000000000a13d8 Strong      00000000027f10e8      160                  System.OutOfMemoryException
00000000000a13e0 Strong      00000000027f1048      160                  System.Exception
00000000000a13f8 Strong      00000000027f1538      216                  System.AppDomain
00000000000a17d0 Pinned      00000000027f2ca8       64                  System.Int32[]
00000000000a17d8 Pinned      00000000127f5710    16352                  System.Object[]
00000000000a17e0 Pinned      00000000127f36f0     8192                  System.Object[]
00000000000a17e8 Pinned      00000000127f32b0     1056                  System.Object[]
00000000000a17f0 Pinned      00000000027f1408       24                  System.Object
00000000000a17f8 Pinned      00000000127f1038     8792                  System.Object[]

此时,可以看到对象是00000000027f2ca8 ,持有他的句柄是00000000000a17d0

看下句柄内容:

0:000> dd 00000000000a17d0
00000000`000a17d0  027f2ca8 00000000 127f5710 00000000
00000000`000a17e0  127f36f0 00000000 127f32b0 00000000
00000000`000a17f0  027f1408 00000000 127f1038 00000000
00000000`000a1800  00000000 00000000 00000000 00000000
00000000`000a1810  00000000 00000000 00000000 00000000
00000000`000a1820  00000000 00000000 00000000 00000000
00000000`000a1830  00000000 00000000 00000000 00000000
00000000`000a1840  00000000 00000000 00000000 00000000

句柄中的前8个字节正好是持有的对象;

补充:Pined句柄表示被固定不会被移动的对象。

windbg 命令 gchandles的更多相关文章

  1. WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  2. WinDbg 命令三部曲:(一)WinDbg 命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  3. WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册

    本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部曲:(一)WinDbg 命令手册> <WinDb ...

  4. windbg命令学习3

    3.进程与线程: 既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息.调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺. 3.1. 进程命令 进程命令包括以下:显示进程 ...

  5. WinDbg 命令手册

    WinDbg 命令三部曲:(一)WinDbg 命令手册   本文为 Dennis Gao 原创技术文章,发表于博客园博客,未经作者本人允许禁止任何形式的转载. 系列博文 <WinDbg 命令三部 ...

  6. WinDbg命令三部曲

    WinDbg 命令三部曲:(一)WinDbg 命令手册 WinDbg 命令三部曲:(二)WinDbg SOS 扩展命令手册 WinDbg 命令三部曲:(三)WinDbg SOSEX 扩展命令手册

  7. Windbg命令脚本流程控制语句详解

    在Windbg命令脚本一文里,我们介绍了命令脚本语言的的组成要素,在本文里将对语句进行展开的讲解.这些语句主要是流程控制的语句,比如我们常见的条件分子和循环语句等. ; (命令分隔符) 分号(:)字符 ...

  8. Windbg命令脚本

    命令脚本,就是将完成某个特定任务的相关命令组合在一起,保存在脚本文件里,加载到Windbg里执行,达到我们的目的.你可以理解为脚本就是一种语言,就像c或者汇编,但是他不需要编译器将其编译为可执行文件, ...

  9. windbg命令行选项

    我们不仅可以通过GUI的方式使用Windbg,还可以通过命令行的方式使用它,且在有些需求和使用场景下,只能使用命令行模式  windbg命令行使用以下语法: windbg [ -server Serv ...

随机推荐

  1. ClassLoader类加载机制

    一.类加载器 类加载器(ClassLoader),顾名思义,即加载类的东西.在我们使用一个类之前,JVM需要先将该类的字节码文件(.class文件)从磁盘.网络或其他来源加载到内存中,并对字节码进行解 ...

  2. LIB 配置文件读写器

    由于读写配置文件的次数比较频繁,而且拥有众多的类库,到最后,直接被各种各样的类库烦死. 顺手封一个简单,实用的.主要功能: 读写AppSetting 读取连接字符串 读取自定义配置节 using Sy ...

  3. HDU4057 Rescue the Rabbit(AC自动机+状压DP)

    题目大概是给几个DNA片段以及它们各自的权值,如果一个DNA包含某个片段那么它的价值就加上这个片段的权值,同时包含多个相同DNA片段也只加一次,问长度l的DNA可能的最大价值. 与HDU2825大同小 ...

  4. BZOJ3413 : 匹配

    FDUSC前刷刷题吧.. 本题每个询问就是说将询问串与主串每个后缀匹配,若匹配成功则结束,否则加上lcp的长度 对主串建立后缀树,并用主席树维护DFS序 对于每个询问串,找到最后走到的点fin_nod ...

  5. BZOJ1224: [HNOI2002]彩票

    Description 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票,不同的彩民的彩票上的选择不同.每次抽奖将抽出两个自然数X和 ...

  6. Java实现队列

    class Element{ int id; String name; Element(int a,String n){ id=a;name=n; } } class SeqQueue{ int fi ...

  7. Servlet的生命周期,并说出Servlet和CGI的区别,Servlet与JSP的区别

    一.Servlet 生命周期 1.加载 2.实例化 3.初始化 4.处理请求 5.销毁 二.Servlet与cgi的区别: Servlet处于服务器进程中,它通过多线程方式运行其service方法,一 ...

  8. nginx源码编译安装

    安装编译所需的包: [root@xaiofan ~]# yum install -y gcc gcc-c++ autoconf automake 安装nginx使用某些功能需要的包: [root@xa ...

  9. ORACLE SEQUENCE用法

    引用自: http://www.cnblogs.com/hyzhou/archive/2012/04/12/2444158.html 在oracle中sequence就是序号,每次取的时候它会自动增加 ...

  10. dig理解DNS的解析过程 - 阿权的书房

    关于DNS的常识,可以阅读附录的一些参考资料.本文旨在尝试举例用dig命令理解这个过程,并非权威知识,仅供参考.测试域名为阿权的书房的域名 www.aslibra.com 和 www.163.com. ...