1、如何抓取dump文件。

这要分两种情况:

第一种情况:如果是Vista或者是Windows2008操作系统就是一个简单的事情,在任务管理器中,切换到"进程"选项卡,右键点击你想要创建dump文件的进程,然后选择"Create Dump File"即可。如果你想要创建dump文件的进程是w3wp.exe,可能会看到有很多w3wp,但不知道哪一个是你要要抓的网站,可以通过下需的命令查看,对于vista或win2008系统使用:%windir%/system32/inetsrv/appcmd list wp 而对于win2k3系统,你可以使用iisapp来查看。

第二种情况: 对于win2k3操作系统是没有上面说到的功能的,当然上面的方法也是不完善的,因为它不能在程序崩溃的那一刻抓取到最适合的dump文件。可以通过adplus命令来抓取。例如:

adplus -hang -pn w3wp.exe -o c:\dumps
该命令立刻把w3wp.exe的full dump抓取到c:\dumps文件夹内。

adplus -hang -p 81388 -o c:\dumps 
该命令立刻把81388这个进程的full dump抓取到c:\dumps文件夹内。

adplus -crash -pn w3wp.exe -fullonfirst -o c:\dumps
adplus -crash -p 81388 -fullonfirst -o c:\dumps
该命令会通过监视进程w3wp.exe或81388的运行,在当第一次出现异常时记录一次完整的dump

adplus -crash -pn w3wp.exe  -o c:\dumps
该命令也是在w3wp.exe崩溃时记录dump,但这是一个mini dump

#一些常用的参数:
-Crash:表示我捕捉的是一个Crash dump。
-p:指定要捕捉的进程ID。 -IIS表示我们捕捉IIS的所有进程。
-quiet:不弹出提示窗口
-fullonfirst:表示我希望在first chance时捕捉完整的dump信息,也就是进程的所有完整信息。
-o :后面跟着dump文件的存放路径
-c : 指定配置文件

#配置环境变量:
计算机-->属性-->高级-->环境变量-->系统环境变量-->
_NT_SYMBOL_PATH          C:"Windows"symbols
为Path系统环境变量增加C:\Program Files\Debugging Tools for Windows (x86)\

#还能通过指定配置文件来灵活使用adplus,例如可以指定clr发生某种异常时记录dump等。

#解决在抓取dump过程出现"ActiveX 部件不能创建对象: 'Wscript.shell'" 错误的方法,运行如下命令:
regsvr32 %windir%"system32"WSHom.Ocx

#注意:当运行adplus抓取dump后,对应的w3wp.exe进程将会自动回收重启新的进程

2、分析dump文件。

0:000> .load C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\SOS.dll  //加载调试模块
   0:000>!eeheap -gc                                   //查看托管堆的情况(包括大小)
   0:000>!dumpheap -min 85000 -stat          //显示大小大于85000的对角的统主信息
   0:000>!dumpheap -min 85000                  //显示大小大于85000的对角的统主信息                
   0:000>!dumpheap -stat                           //该命令显示程序中所有对象的统计信息,显示的大小是对象本身的大小,不包括对象里面值的大小
   0:000>!gcroot 0x34e9bee0                      //来显示一个实例的所属关系
   0:000>!dumpheap -mt 790fcb30              //该命令显示MethodTable 790fcb30的详细信息
   0:000>!DumpArray                                 //查看数组信息
   0:000>!ObjSize 012a1ba4                       //对象实际在内存中的大小
   0:000>lm                                              //查看加载了哪些模块
   0:000>!dumpmt -md 00976d48              //得到类的成员函数详细信息

相关链接:
Windbg 用法
如何安装WinDbg并得到第一个dump文件
WinDbg初始体验,问题来了怎么办?
WinDbg初始体验2,抓住不放的恶棍(OutOfMemory案例分析Ⅰ)
WinDbg初始体验3,剪不断的铁链(OutOfMemory案例分析Ⅱ)

转载于:https://www.cnblogs.com/BillChen/archive/2008/09/22/1295866.html

WinDbg使用摘要相关推荐

  1. Windbg学习 (0x0001) 安装与基本配置

    1.安装 根据微软MSDN官方建议,有三种方式安装Windbg,摘要如下: 3 ways to get Debugging Tools for Windows As part of the WDK I ...

  2. 使用WinDbg内核调试

    WINDOWS调试工具很强大,但是学习使用它们并不容易.特别对于驱动开发者使用的WinDbg和KD这两个内核调试器(CDB和NTSD是用户态调试器). 本教程的目标是给予一个已经有其他调试工具使用经验 ...

  3. windbg检测句柄泄露(定位到具体代码)

    原文 http://blog.csdn.net/yockie/article/details/40603511 摘要: windbg attach到目标进程 !htrace -enable 该命令会自 ...

  4. Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍

    摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...

  5. 新年+情人节礼物,WinDBG找出你内存溢出的地方

    在2010年的silverlight开发中项目组遇到了一些内存过大问题,经过同事们共同努力总算解决了,下面分享我们用WinDBG工具调试的一些经验.下面我们以WinFrom为例(在silverligh ...

  6. windbg查阅资料(持续更新)

    打开dump文件,选择"file->Open Crash Dump- " 打开dump文件. .lastevent 命令显示最近一次发生的异常或事件. 异常错误码查询 异常 ...

  7. ZZ:windbg 常用命令

    ZZ from:http://www.cppblog.com/Walker/archive/2012/06/28/146523.html 不要再假装自己写的程序没bug了,不可能的,debug工具你早 ...

  8. 调试工具:应用程序验证器Application Verifier一页纸(appverif+WinDbg+gflags)- 详细版

    应用程序验证器(Application Verifier)这个工具是做什么的? 说明:Application Verifier是来自微软官方的一款应用程序验证工具,主要用于帮助用户检测和调试内存损坏. ...

  9. 图像零交叉点,视频生成,视频识别,视频摘要,视频浓缩

    图像零交叉点,视频生成,视频识别,视频摘要,视频浓缩 一.视频生成,视频识别,视频摘要,视频浓缩 视频生成与视频识别 视频分析的两大任务,前者侧重于对下一帧的预测,而前者则侧重于视频内容的理解.由于视 ...

  10. 3D目标检测论文阅读摘要

    3D目标检测论文阅读摘要 2D Object Detection 的研究已经非常成熟了,代表作品有RPN系列的FasterRCNN,One Shot系列的YOLOv1-YOLOv3,这里推荐一个2D ...

最新文章

  1. python 往excel 里面写数据
  2. P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
  3. java中引用一个文件数据_JAVA-基础-引用数据类型(类)
  4. 日常生活小技巧 -- 玩转 PDF
  5. Java -- XStreamAlias 处理节点中的属性和值
  6. clodeblocks debug断点调试_idea debug调试————简单常用,适合初学者
  7. aws cognito_AWS Cognito的用户管理—(2/3)核心功能
  8. 计算机显示文本自定义130%,实训课题目
  9. mysql 季度最后一天,MYSQL中取目前年份的第一天和当前周,月,季度的第一天/最后一天...
  10. 两个mapreduce 做topn_Apache Hive 是怎样做基于代价的优化的?
  11. FLASH AS3 TextField
  12. 二叉树中和为某一值的路径(一)(C++)
  13. 能直接挂在iis的动静态网站_如何防止网站高并发引起的系统崩溃?
  14. 2022男神/女神完整投票系统Ver5.5.21
  15. matlab绘制函数傅里叶,MATLAB中如何实现矩形函数的傅里叶变换
  16. 小杜滑铲 DFS 最长路径
  17. Exiting on user cancel解决
  18. 对话庄表伟:开源第一课
  19. UDA一致正则化和熵最小化
  20. 【GDOI2016】疯狂动物城(树链剖分+可持久化线段树)

热门文章

  1. 小米平板android版本,小米平板2发布:分Android和Wind 10两个版本
  2. 样本分成训练集和测试集_吴恩达深度学习笔记(64)-开发集和测试集的大小分配...
  3. Futter基础第9篇: 实现页面跳转、跳转传值(命名路由、命名路由传值)
  4. MFC编码注意(2)
  5. 4-2017-12-2-2约瑟夫环
  6. git命令的理解与扩展
  7. PHP微信公众号开发常用功能
  8. 有indexPath获取到cell对象
  9. jQuery学习教程 基础篇 归档
  10. 网络设备流量分析——ElastiFlow容器化部署与应用