登录 注册 退出

您的位置 : 首页 > 软件区 > 电脑软件 > 编程开发 > 调试编译

WinDbg(分析dump文件)

WinDbg完整版是一款微软官方推出的在Windows平台下使用的强大的用户态和内核态调试工具,相比较许多用户熟知的VS(Visual Studio),这是一个轻量级的调试工具,文件大小很小,倒是因为只有调试功能,所以软件的功能要比我们的V

类型: 调试编译

平台: PC

版本: v10.0.19041.1

语言: 简体中文

更新: 2026-03-14

标签: WinDbg完整版

WinDbg完整版是一款微软官方推出的在Windows平台下使用的强大的用户态和内核态调试工具,相比较许多用户熟知的VS(Visual Studio),这是一个轻量级的调试工具,文件大小很小,倒是因为只有调试功能,所以软件的功能要比我们的VS更好,除此之外软件的另外一个用途就是为我们的用户分析dump数据了。WinDbg具有很好的灵活性和可扩展性,提供了130多条标准命令,140多条元命令和难以计数的扩展命令。它可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件,能够通过dmp文件轻松的定位到问题根源,可用于分析蓝屏、程序崩溃(IE崩溃)原因,是我们日常工作中必不可少的一个有力工具,学会使用它,将有效提升我们的问题解决效率和准确率。这款软件中文版支持Source和Assembly两种模式的调试,不仅可以调试应用程序,还可以进行Kernel Debug,如果用户是一位开发人员,想要很好的进行软件的调试,那么不要错过这款软件。

中文版快捷键

Command Atl+1 输入命令、显示命令结果和调试信息输出 Watch Alt+2 观察指令全局变量、局部变量和寄存器的信息 Locals Alt+3 自动显示当前函数的所有局部变量 RegistersAtl+4 观察和修改寄存器的值 Memory Alt+5 观察和修改内存数据 Call Stack Alt+6 栈中记录的函数调用序列 Disassembly Alt+7 反汇编 Scratch Pad Alt+8 白板,可以用来做调试笔记等 Processes and Threads Alt+9 显示所有调试目标的列表,包括进程和线程等 Command Browser Alt+N 执行和浏览命令

常用命令

查看版本信息:version、vertarget 查看模块信息:lm、!dlls、!lmvi等 调用栈:用k命令显示调用栈,用.frames命令切换栈帧 内存操作:读内存用d命令,写内存用e命令 自动分析:!analyze、!owner等 符号命令:.reload加载符号, .sympath设置符号路径, !sym设置符号选项 进程线程:!process显示进程信息; .process显示当前进程,或用.process /i 切换当前进程;!peb显示进程环境块内容;~命令显示线程列表,用~n s可切换当前线程,n表示线程号;.thread显示当前线程。 windbg配置方法 运行WinDbg->菜单->File->Symbol File Path->按照下面的方法设置_NT_SYMBOL_PATH变量: 在弹出的框中输入“C:\MyCodesSymbols; SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols”(按照这样设置,WinDbg将先从本地文件夹C:\MyCodesSymbols中查找Symbol,如果找不到,则自动从MS的Symbol Server上下载Symbols)。

使用方法

WinDbg提供了图形界面和命令行两种运行方式。这里介绍使用图形界面的WinDbg来调试应用程序: File->OpenExecutable->可以选择一个可执行文件进行调试; File->Attache to a Process->可以选择一个运行中的进程,并对其进行调试; 然后选择需要调试的程序。 至此,我们就可以在上图中用红色方框标记的文本框中输入各个功能指令了。 有关指令的帮助文档,可以参考:Help->Contents->Debugging Tools for Windows->Debuggers->Debugger Reference,该目录下列集了所有指令机器功能说明!

常见问题

windbg怎么查看? 1 安装windbg (从微软网站上下载,free), 运行windbg, 设置symbol path, File- Symbol File Path, 输入SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols, 如果你已经有了symbo path, 直接输入就可以了。 2. 生成一个dump, 可以用windbg提供的adplus命令来生成,或者有一个简单的工具, IIS Diagnostics, 这个也可以从微软下, 假设现在你的application hang 或者 crash 了, 运行这个Diagnostics, cancel弹出选择rule type的对话框, 然后选择process tab, 找到你要dump的进程, 右键生成dump就可以了, 然后可以顺便用这个工具直接分析了,还是说winbdg吧。 3. 现在dump有了, 运行windbg,打开这个dump (File- Open Crash Dump...), 运行下面的几个命令. .load path\SOS.dll (path是全路经, 一般在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727, 根据自己.net版本选不同的) .reload -f mscorwks.dll!threads (察看所有线程(managed), 这步一般就可以看到exception在哪一个线程了, 假设看到在 0 thread)~0s (转到 0 thread) !clrstack (查看call stack) 然后可以通过windbg上面的一些快捷功能打开 Process and Threads 窗口 和 call stack 窗口,双击call stack 里面的 function call, 就可以跳转到source code了。 !printException (查看exception, 仅限于managed exception, 找到第一次被抛出来的exception address, 一看就知道哪个了) 调试时t命令和p命令的区别? t会进入函数调用中,即call p,会进入入口地址为p的函数中去。 p对于上述情况不会进入函数体,而直接执行call p,并跳跃到下一条指令。 感觉也和VC中的单步和跟踪差不多。 打不开 dmp文件? windows发生蓝屏时,如果系统属性有下图设置,windows会自动生成minidump文件,该文件记录蓝屏生成代码和导致蓝屏出现的进程,通过windebug的软件来分析这个minidump文件.我们就可以找到蓝屏出错的原因了。这个文件保存目录是C:\windows\minidump文件夹,一般生成的名字为:Mini040108-01.dmp. 如何利用 WinDbg 进行双机调试? 其实并不是只有在生成不了转储文件的情形下才能使用双机调试,在任何情况下都是可以使用的,尤其是调试内核问题时,双机调试不必限于转储文件类型,均可获得一切可以获得的信息,相当于完全内存转储了。而且,双机调试可以调试到系统启动阶段和之后任意时刻的问题,这是内存转储做不到的。

更新日志:

v10.0.19041.1版本 修正了几个内核调试传送问题。
展开

相关游戏

更多>>

相关文章

更多>>

大家都在玩

更多>>

本类推荐

更多>>

热门聚合

更多>>

关于本站 版权声明 下载帮助 网站地图

皖ICP备2026003478号-1 皖公网安备34112602000317号

Copyright © 2012-2026 爪神网版权所有