如何抓取windows的dump?抓取dump

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何抓取windows的dump?抓取dump相关的知识,希望对你有一定的参考价值。

参考技术A Windbg生成dump文件的方法:程序崩溃(crash)的时候,为了以后能够调试分析问题,可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump文件。步骤:1)打开WinDBG并将之Attach到crash的程序进程2)输入产生dump文件的命令WinDBG产生dump文件的命令是.dump,可以选择不同的参数来生成不同类型的dump文件。选项(1):/m命令行示例:.dump/mC:\dumps\myapp.dmp注解:缺省选项,生成标准的minidump,转储文件通常较小,便于在网络上通过邮件或其他方式传输。这种文件的信息量较少,只包含系统信息、加载的模块(DLL)信息、进程信息和线程信息。选项(2):/ma命令行示例:.dump/maC:\dumps\myapp.dmp注解:带有尽量多选项的minidump(包括完整的内存内容、句柄、未加载的模块,等等),文件很大,但如果条件允许(本机调试,局域网环境),推荐使用这中dump。选项(3):/mFhutwd命令行示例:.dump/mFhutwdC:\dumps\myapp.dmp注解:带有数据段、非共享的读/写内存页和其他有用的信息的minidump。包含了通过minidump能够得到的最多的信息。是一种折中方案那怎么自动生成dump文件呢,比如对方的电脑没有windbg,这里用到一个window系统自带工具,Dr.Watson运行方式很简单:直接run-输入drwtsn32-i就可以了,会提示这样的:这个命令真难记,实话,记华生医生吧,福尔摩斯中的如果有程序崩溃,会自动生成dump,这时再输入drwtsn32就会运行这个程序:找到对应路径的DMP文件就行了,一般放在如下路径:C:\DocumentsandSettings\AllUsers\ApplicationData\Microsoft\DrWatson以下实例来自AWD代码:Copyright(c)AdvancedWindowsDebugging(ISBN0321374460)fromAddison-WesleyProfessional.Allrightsreserved.THISCODEANDINFORMATIONISPROVIDED"ASIS"WITHOUTWARRANTYOFANYKIND,EITHEREXPRESSEDORIMPLIED,INCLUDINGBUTNOTLIMITEDTOTHEIMPLIEDWARRANTIESOFMERCHANTABILITYAND/ORFITNESSFORAPARTICULARPURPOSE.--*/#include"stdafx.h"#include#include#includeVOIDSimulateMemoryCorruption();classCAppInfopublic:CAppInfo(LPWSTRwszAppName,LPWSTRwszVersion)m_wszAppName=wszAppName;m_wszVersion=wszVersion;VOIDPrintAppInfo()wprintf(L"\nFullapplicationName:%s\n",m_wszAppName);wprintf(L"Version:%s\n",m_wszVersion);private:LPWSTRm_wszAppName;LPWSTRm_wszVersion;;CAppInfo*g_AppInfo;int__cdeclwmain(intargc,WCHAR*args[])wint_tiChar=0;g_AppInfo=newCAppInfo(L"MemoryCorruptionSample",L"1.0");if(!g_AppInfo)return1;wprintf(L"Press:\n");wprintf(L"1Todisplayapplicationinformation\n");wprintf(L"2Tosimulatedmemorycorruption\n");wprintf(L"3Toexit\n\n\n>");while((iChar=_getwche())!='3')switch(iChar)case'1':g_AppInfo->PrintAppInfo();break;case'2':SimulateMemoryCorruption();wprintf(L"\nMemoryCorruptioncompleted\n");break;default:wprintf(L"\nInvalidoption\n");wprintf(L"\n\n>");return0;VOIDSimulateMemoryCorruption()char*pszWrite="Corrupt";BYTE*p=(BYTE*)g_AppInfo;CopyMemory(p,pszWrite,strlen(pszWrite));

adplus 抓取dump

工具所在路径   C:\Program Files\Windows Kits\10\Debuggers\x64

cmd窗口切换目录倒adplus所在路径下,输入抓取命令。adplus -hang -pn w3wp.exe -quiet -o d:\dumps

Microsoft Windows [版本 10.0.10240]
(c) 2015 Microsoft Corporation. All rights reserved.

C:\Users\WXH-NOTE>c:

C:\Users\WXH-NOTE>cd "c:\Program Files\Windows Kits\10\Debuggers\x64\

c:\Program Files\Windows Kits\10\Debuggers\x64>adplus -hang -pn w3wp.exe -quiet -o d:\dumps
Starting ADPlus
********************************************************
* *
* ADPLus Flash V 7.01.007 08/11/2011 *
* *
* For ADPlus documentation see ADPlus.doc *
* New command line options: *
* -pmn <procname> - process monitor *
* waits for a process to start *
* -po <procname> - optional process *
* won‘t fail if this process isn‘t running *
* -mss <LocalCachePath> *
* Sets Microsoft‘s symbol server *
* -r <quantity> <interval in seconds> *
* Runs -hang multiple times *
* *
* ADPlusManager - an additional tool to facilitate *
* the use of ADPlus in distributed environments like *
* computer clusters. *
* Learn about ADPlusManager in ADPlus.doc *
* *
********************************************************

Attaching to 4672 - w3wp in Hang mode 03/10/2017 19:22:15
Attaching to 10060 - w3wp in Hang mode 03/10/2017 19:22:16
Logs and memory dumps will be placed in d:\dumps\20170310_192215_Hang_Mode

c:\Program Files\Windows Kits\10\Debuggers\x64>

以上是关于如何抓取windows的dump?抓取dump的主要内容,如果未能解决你的问题,请参考以下文章

如何手工抓取dump文件

如何抓取分析Thread Dump

如何手工抓取dump文件及分析

抓取win32程序崩溃dump文件的几种方法

抓取win32程序崩溃dump文件的几种方法

使用ProcDump工具抓取dump