windbg常用命令,windbg使用方法 dmp

http://www.itjxue.com  2023-01-04 18:28  来源:未知  点击次数: 

WinDBG 技巧:如何生成Dump 文件(.dump 命令)

步骤: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远程调试程序

远程调试:你可以从机器A上调试在机器B上执行的程序。具体步骤如下:?在机器B上启动一个调试窗口(DebugSession)。你可以直接在Windbg下运行一个程序或者将Windbg附加(Attach)到一个进程。?在机器B的Windbg命令窗口上启动一个远程调试接口(remote):.servernpipe:pipe=PIPE_NAMEPIPE_NAME是该接口的名字。?在机器A上运行:windbg–remotenpipe:server=SERVER_NAME,pipe=PIPE_NAMESERVER_NAME是机器B的名字。Dump文件调试:如果在你的客户的机器上出现问题,你可能不能使用远程调试来解决问题。你可以要求你的用户将Windbg附加到出现问题的进程上,然后在命令窗口中输入:.dump/maFileName创建一个Dump文件。在得到Dump文件后,使用如下的命令来打开它:windbg–zDUMP_FILE_NAME本地进程调试:你可以在Windbg下直接运行一个程序:Windbg“pathtoexecutable”arguments也可以将Windbg附加到一个正在运行的程序:Windbg–p“processid”Windbg–pn“processname”注意有一种非侵入(Noninvasive)模式可以用来检查一个进程的状态并不进程的执行。当然在这种模式下无法控制被调试程序的执行。这种模式也可以用于查看一个已经在Debugger控制下运行的进程。具体命令如下:Windbg–pv–p“processid”Windbg–pv–pn“processname”

WinDbg怎么用?

dmp文件需要用Windbg软件分析。

需要为Windbg软件设置符号表路径,作为蓝屏原因分析数据库,否则软件将没有作用。单击File--选择Symbol File Path,在弹出的对话框Symbol Path文本框中输入SRV*C:\Symbols*,单击OK。

设置完毕后单击File--选择Open Crash Dump来打开蓝屏文件,在弹出的对话框中点选到C:\Windows\Minidump文件夹,单击我们要分析的蓝屏文件,单击打开。

在弹出的对话框Save Information for workspace?(是否保存信息到工作区)中单击Yes。(如果下次不想再被提示,可以勾选Don't ask again in the WinDbg session)。

接下来就是对文件进行分析,这需要一定的经验和知识。这里我们着重可以看一下System Uptime(开机时间)和Probably Caused By(可能引起故障的原因是)。

需要进一步分析,可以单击!analyze -v,此时我们可以从中提取到蓝屏错误代码和引起蓝屏的程序名称,再通过网络搜索这些程序名和代码等方式弄清原因。

windbg 和cdbg使用总结

因为要批量分析dump文件。发现可以使用windbg来批量分析dump文件。

网络上有很多关于windbg的介绍,但是却很少介绍cdbg,就是windbg的命令行模式 。

cdbg -help的方法

-z dump_path dump路径

-y pdbpath pdb路径

还有更多的详细的命令可以查看 -help

如果你有符号服务器那么你可以设置 环境变量。

第一个可以设置远程共享符号器

环境名:_NT_SYMBOL_PATH

环境值: SRV* \192.168.7.4\symbols_release*

本地备份变量:

环境名:_NT_ALT_SYMBOL_PATH

环境值:cache*F:\Temp\symbols;\symbols_server\ReleaseSymbols;\symbols_server\TempSymbols;\symbols_server\WinSymbols

这样就可以了

下面这几个路径,可以看说明:

如何使用windbg调试vista,win7

(1) 执行 Command Prompt 时, 以 Administrator 的身份. 因为只有 Administrator 身份才有权限改变 Boot Config, 其它的 Account 都不行 (即使是具有 Administrator 的权限也不行).

(2) 使用 bcdedit /dbgsettings 查看现在的设定值 ( Default 为 COM1, 115200 ), 可以更改为自行的设定, 命令为 bcdedit /dbgsettings 1394 channel:23 (例: 使用 1394, channel 为 23). 一般不需要修改。

(3) 复制一个开机选项, 命令为 bcdedit /copy {current} /d DebugEntry , DebugEntry为选项名称, 可以自行命名. 然后将结果的 GUID 值复制一份.

(4) 使用 bcdedit /debug {XXXXXXXX-XXXX-XXXX...(GUID)} ON 命令将此选项的 Debug 功能打开. 参数 /debug 后面接的 GUID 值为步骤 (3) 的结果.

(5) 改变开机选项的次序, 命令为 bcdedit /displayorder {current} {XXXXXXXX-XX....(GUID)}. 这一项其实一般不用执行。

(6) 使用 regedit 更改 registry 的项目. 在 HKLM"SYSTEM"CurrentControlSet"Control"Session Manager 的子机码下增加一个 Debug Print Filter 的 Key, 然后在这个 Key 之下增加一个 DEFAULT 的 ValueName, 并且设定此 Value 为 REG_DWORD 的型态, 其值为 0x00000008 这点比较重要,否则你在程序中使用DbgPrint输出的信息,在主机端将看不到。

(7) 重新开机, 就可以使用 Kernel Debug 了!!!!!

(责任编辑:IT教学网)

更多

推荐计算机等级考试文章