20.windbg-.dump(转储文件)
来源:互联网 发布:方维p2p网贷系统源码 编辑:程序博客网 时间:2024/04/30 22:23
.dump
.dump 命令创建一个用户模式或内核模式崩溃转储文件。分析工具:https://msdn.microsoft.com/en-us/library/windows/desktop/ee416349(v=vs.85).aspx#writing_a_minidump
程序崩溃(crash)的时候, 为了以后能够调试分析问题, 可以使用WinDBG要把当时程序内存空间数据都保存下来,生成的文件称为dump 文件。 步骤:
1) 打开WinDBG并将之Attach 到crash的程序进程
2) 输入产生dump 文件的命令
直接用.dump -?可以看到它的简单说明:
0:000> .dump -?Usage: .dump [options] filenameOptions are: /a - Create dumps for all processes (requires -u) /b[a] - Package dump in a CAB and delete dump /c <comment> - Add a comment (not supported in all formats) /j <addr> - Provide a JIT_DEBUG_INFO address /f - Create a legacy style full dump /m[acdfFhiprRtuw] - Create a minidump (default) /o - Overwrite any existing file /u - Append unique identifier to dump name
0:000> .dump c:/myapp.dmpUnable to create file 'c:/myapp.dmp' - Win32 error 0n80 "文件存在。"0:000> .dump /o c:/myapp.dmpCreating c:/myapp.dmp - mini user dumpDump successfully written
完整用户模式dump是基本的用户模式dump文件。这种dump文件包含进程的完整内存空间、程序本身的可执行映像、句柄表和其他对调试器有用的信息
注意 和名字无关,最大的"minidump"文件实际上可以提供比完整用户模式dump更多的信息。例如,.dump /mf 或.dump /ma将创建比.dump /f更大更完整的文件。
用户模式下,使用.dump /m[MiniOptions] 是最好的选择。通过这个开关创建的dump文件可以很小也可以很大。通过指定合适的MiniOptions 可以控制究竟需要包含哪些信息。
0:000> .dump /o/f c:/myapp.dmp****************************************************************************** .dump /ma is the recommend method of creating a complete memory dump ** of a user mode process. ******************************************************************************Creating c:/myapp.dmp - user full dumpDump successfully written
我们看到了,系统给出了提示:.dump /ma是创建完整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能够得到的最多的信息。是一种折中方案。
Fhutwd按字母对应上面的MiniOptions表示
//-xp自动生成dump-----------------------------------------------------------------------------------------------------------------------------------------------------------------
那怎么自动生成dump文件呢,比如对方的电脑没有windbg,这里用到一个window XP系统自带工具,Dr.Watson
运行方式很简单:
直接run-输入drwtsn32 -i就可以了,会提示这样的:
这个命令真难记,实话,记华生医生吧,福尔摩斯中的
如果有程序崩溃,会自动生成dump,这时再输入drwtsn32就会运行这个程序:
找到对应路径的DMP文件就行了,一般放在如下路径:
C:\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson
//-win7自动生成dump-----------------------------------------------------------------------------------------------------------------------------------------------------------------
win7下需打开regedit--> 找到:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
在它下面加一项LocalDumps,并做如下项配置:
Value描述Type默认值DumpFolder文件保存路径REG_EXPAND_SZ%LOCALAPPDATA%CrashDumpsDumpCountdump文件的最大数目REG_DWORD10DumpType指定生成的dump类型:0:Custom dump
1:Mini dump
2:Full dumpREG_DWORD1CustomDumpFlags仅在DumpType为0时使用
为MINIDUMP_TYPE的组合REG_DWORD
MiniDumpWithDataSegs|
MiniDumpWithUnloadedModules|
MiniDumpWithProcessThreadData
可以写成.bat:
@echo offecho 设置Dump...reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps"reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpFolder /t REG_EXPAND_SZ /d "C:\MyDump" /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpType /t REG_DWORD /d 2 /freg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /v DumpCount /t REG_DWORD /d 10 /fecho Dump已经设置pause@echo on
@echo offecho 正在取消设置Dump...reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps" /fecho Dump已经取消设置pause@echo on
LocalDumps是全局的,如果想针对指定进程单独设置,如test1.exe,则在/LocalDumps下新建子项test1.exe,同时在test1目录下复制上表的选项,这样,系统就会先读全局设置,再读子项test1.exe的设置
- 20.windbg-.dump(转储文件)
- 使用windbg分析Mini-dump文件(转)
- WINDBG调试DUMP文件
- WinDBG调试Dump文件
- windbg分析dump文件
- WinDbg关联dump文件
- WinDbg调试dump文件
- windbg分析dump文件
- windbg分析dump文件
- windbg生成dump文件
- windbg分析dump文件
- windbg分析dump文件
- WinDbg分析DUMP文件
- windbg分析dump文件
- 用WinDbg分析Dump文件,转自WinDbg帮助文件
- 用WinDbg分析Dump文件,转自WinDbg帮助文件
- Windbg dump 方法(转)
- WinDBG :生成Dump 文件(.dump 命令)
- Python学习--不变的HelloWorld
- 签名档嵌入方法
- 让java程序在Linux后台运行
- Eclipse中安装SWT
- 分数加减法(P3979)
- 20.windbg-.dump(转储文件)
- js 进一法取正、四舍五入法取正、舍去法取正
- 互斥与同步
- 64位服务器安装64位oracle相关问题集
- System.currentTimeMillis() 一个计时方法
- digital output (alsa)相关说明
- 云计算:中兴通讯的“新引擎”
- 云计算是一种商业模式 未来将无处不在
- ARM要在2、3年内获得笔记本市场10%至20%