安装与配置windbg

安装与配置windbg的symbol(符号)

第一步 下载WinDBG,

第二步 双击下载的文件安装windbg.安装时注意记住安装到那里了.

第三步 windbg访问符号需要两个文件(SYMSRV.DLL
和
SYMSTORE.EXE)所以在环境变量path中将windbg安装目录添加进去,这一步是告诉windbg那两个文件放在什么地方.

第四步 新建一个环境变量_NT_SYMBOL_PATH 值为: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols

还有一种方法新的方法是:设置值为 cache*c:\mysymbol;srv*http://msdl.microsoft.com/download/symbols

这两个的不同点在于 第一个只能缓存符号服务器形式的符号文件,但是第二种可以缓存远程共享形式的符号文件。.这一步的意思是说告诉windbg,我的符号文件存放在c:mysymbol中

第五步 重启计算机,再运行运行windbg 打开一个exe文件或者附加到一个进程里去, 你会看到

Symbol search path is: SRV*c:\mysymbol* http://msdl.microsoft.com/download/symbols

打开c盘看到有一个新目录mysymbol,里面有windbg新下载的文件,说明配置成功了.

加载sos和clr

问题一:WinDBG分X86和X64两个版本

  如果你用的是32位的WinDBG,那直接打开就行;你如果用的是64位的版本,那么如果调试64位代码也直接打开,如果调试x86的代码,要使用Wow64下的WinDBG.exe。

问题二:确定SOS和CLR的位置和版本

  如果安装了Visual
Studio的机器,可以打开VS的命令行,输入where sos.dll命令,可以找到sos.dll的全路径(需要说明的是,找到的不一定是全部的文件)。它的一般位置在C:\Windows\Microsoft.NET\Framework?\version?\SOS.dll。其中Framework?包括Framework和Framework64两个版本;version?包括v2.0.50727,v3.0,v3.5和v4.0.30319等版本。文件确切路径的选择依据要调试程序的版本而定,一般为C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll,CLR为同一目录下的CLR.dll文件。

问题三:加载SOS和CLR

  运气好的话,使用命令.load
C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll可以加载成功。如果失败,特别是出现The call to
LoadLibrary(C:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll) failed,
Win32 error 0n193这样的错误,请确认加载sos.dll的版本是否正确。

  此外,加载不出错,并不见得可以直接使用。可以尝试命令.loadby
sos clr。如果命令成功,那么测试环境好了。如果出现了“Unable
to find module 'clr'”这样的错误。请键入g让调试程序运行一会儿,停下来的时候再尝试命令.loadby
sos clr,这时一般都会成功。

获取dump

方法1:任务管理器,生成转储文件

win2008 以上版本,在任务管理器中,切换到"进程"选项卡,右键点击想要创建dump文件的进程,然后选择"Create Dump File(生成转储文件)"即可。

方法2:adplus

命令窗口,c:\路径\adplus -hang -pn
w3wp.exe -o c:\dumps

-hang: 表示附加到目标进程,抓取 dump 镜像,然后解除。对应的参数是 -crash 崩溃模式,该参数会终止目标进程;

-o: 指定 Dump 文件保存路径

方法2:attach到进程

1) 打开WinDBG并将之Attach 到crash的程序进程

2) 输入产生dump 文件的命令

WinDBG产生dump 文件的命令是 .dump ,可以选择不同的参数来生成不同类型的dump文件。

选项(1): /m

命令行示例:.dump /m C:\dumps\myapp.dmp

注解:
缺省选项,生成标准的minidump,
转储文件通常较小,便于在网络上通过邮件或其他方式传输。
这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、
进程信息和线程信息。

选项(2): /ma

命令行示例:.dump /ma C:\dumps\myapp.dmp

注解:
带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境),
推荐使用这中dump。

选项(3):/mFhutwd

命令行示例:.dump /mFhutwd C:\dumps\myapp.dmp

注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案。

windbg工具安装配置及dump抓取的更多相关文章

  1. Ubuntu安装配置Charles,抓取http网络请求包

    http://blog.csdn.net/lylddinghffw/article/details/75322262

  2. qualcomm memory dump 抓取方法

    Memory dump是系统出现crash时常用的分析故障原因的方法,qualcomm 各子系统运行时,为方便debug,都会开辟ram log和debug variable用于保存各系统运行信息及健 ...

  3. Oracle 客户端安装 + pl/sql工具安装配置

    Oracle 客户端安装 +  pl/sql工具安装配置 下载oracle客户端,并在本地安装. 11g下载地址为: http://www.oracle.com/technetwork/databas ...

  4. Java开发环境及工具安装配置

    Java开发环境及工具安装配置 Windows JDK 下载地址 https://www.oracle.com/java/technologies/javase-downloads.html 安装配置 ...

  5. 【性能诊断】五、并发场景的性能分析(windbg简介及dump抓取)

    windbg简介 Windbg是在windows平台下,强大的用户态和内核态调试工具.相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能 ...

  6. 【VIP视频网站项目】VIP视频网站项目v1.0.3版本发布啦(程序一键安装+电影后台自动抓取+代码结构调整)

    在线体验地址:http://vip.52tech.tech/ GIthub源码:https://github.com/xiugangzhang/vip.github.io 项目预览 主页面 登录页面 ...

  7. 『言善信』Fiddler工具 — 15、使用Fiddler抓取HTTPS请求

    目录 1.Fiddler抓取HTTPS过程 2.拓展:SSL/TLS证书握手原理 3.Fiddler抓取HTTPS原理总结 4.Fiddler抓取HTTPS设置 步骤1:配置证书 步骤2:勾选设置 5 ...

  8. macOS: mac下配置charles来抓取http请求

    1. 准备charles 下载链接:https://www.charlesproxy.com/download/ 2. 配置charles 2.1)配置http代理.打开Charles软件,配置htt ...

  9. 『言善信』Fiddler工具 — 16、使用Fiddler抓取移动端App请求

    目录 1.抓取Android移动端App请求 2.抓取IOS移动端App请求 3.总结: 1.抓取Android移动端App请求 前提: 因为Fiddler抓包的原理就是通过代理,所以确保被测终端要和 ...

随机推荐

  1. JS实现鼠标悬浮,显示内容

    其实就是增加title属性

  2. Linux中Nginx反向代理下的tomcat集群

    Nginx具有反向代理(注意和正向代码的区别)和负载均衡等特点. 这次Nginx安装在 192.168.1.108 这台linux 机器上.安装Nginx 先要装openssl库,gcc,PCRE,z ...

  3. 看完48秒动画,让你不敢再登录HTTP网站(附完整示例代码)

    在我的 单点登录SSO示例代码 一文中,强烈不建议部署HTTP的SSO服务站点. 在此写个基于网络包嗅探的HTTP会话劫持程序,给大家一个直观的危害性展示. 示例中,我在一台Mac上登录58同城,被另 ...

  4. Dockerfile 常用指令 - 每天5分钟玩转 Docker 容器技术(16)

    是时候系统学习 Dockerfile 了.下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档. FROM指定 base 镜像. MAINTAINER设置镜像的作者,可以是任 ...

  5. 为什么非全站升级HTTPS不可?

    升级HTTPS已经是大势所趋,但仍有大量互联网企业犹豫是否要全站升级HTTPS,为此本文梳理了全站升级HTTPS与部分升级HTTPS的优劣势对比,来判断是否真的有必要进行全站HTTPS升级. HTTP ...

  6. Natas Wargame Level 16 Writeup(Content-based Blind SQL Injection)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqwAAADhCAYAAAANm+erAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

  7. Natas Wargame Level 13 Writeup(文件上传漏洞,篡改file signature,Exif)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADDCAYAAAC29BgbAAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

  8. struts2.1.6教程六、使用标签

    1.基础表单标签 准备工作:建立struts2tag项目,搭建好struts2的开发环境.在html我们常用的基础表单标签主要有文本域.密码域.提交.重置四种.它们在strust2中可以通过标签来生成 ...

  9. 开涛spring3(12.4) - 零配置 之 12.4 基于Java类定义Bean配置元数据

    12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件. 基于Java ...

  10. 无声的吐槽csdn

    上次朋友聚会,说csdn挺好的,我琢磨着,那好我也去注册一个.经过n次的注册(用户名那边老是验证不过,不给中文开头,然后随便填了一个),终于搞定了! 我想,不错啊,做了这么多限制,挺安全的感觉.然后我 ...