使用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. Properties类的用法

    在java.util包下面有一个类Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件). 一. Properties结构 类继承结构如下: clas ...

  2. 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常

    现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumb ...

  3. DP VK Cup 2012 Qualification Round D. Palindrome pairs

    题目地址:http://blog.csdn.net/shiyuankongbu/article/details/10004443 /* 题意:在i前面找回文子串,在i后面找回文子串相互配对,问有几对 ...

  4. Sql 字符串替换

    (1) 字符串替换 Update SongADD_EMH0055 SET songno = REPLACE(songno, '231', '233') where songno like '%1022 ...

  5. C#:代表(delegate)和事件(event)

    代表(delegate): 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现.下面来看看它的实现步骤: 声明一个delegate对象. 实现和delegate具有相同 ...

  6. Tri Tiling[HDU1143]

    Tri Tiling Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  7. unity label和图片 gui

    #pragma strict var str:String; //接收外部复制贴图 var imageTexture:Texture; private var imageWidth:int; priv ...

  8. winrt 上的翻书特效组件 源码分享 转载请说明

    http://blog.csdn.net/wangrenzhu2011/article/details/10207413 (转) [TemplatePart(Name = A_PARTNAME, Ty ...

  9. Catalan数 && 【NOIP2003】出栈序列统计

    令h(1)=1, h(0)=1,catalan数满足递归式: h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)h(0) (n>=2) =C(2n, n)/(n+1) ...

  10. python中迭代器和生成器

    l=[1,2,3,4] for n in l: print n 在看上面这段代码的时候,我们没有显式的控制列表的偏移量,就可以自动的遍历了整个列表对象.那么for 语句是怎么来遍历列表l的呢?要回答这 ...