内容简介:Windbg是.NET高级调试领域中不可或缺的一个工具和利器,也是日常我们分析解决问题的必备。准备近期写2篇精华文章,集中给大家分享一下如果通过Windbg进行.NET高级调试。今天我们来一篇入门的文章。首先,Windbg是什么?Windows Debugger,简称WinDbg,.NET 最强分析调试利器。它可以用来:
Windbg是.NET高级调试领域中不可或缺的一个 工具 和利器,也是日常我们分析解决问题的必备。准备近期写2篇精华文章,集中给大家分享一下如果通过Windbg进行.NET高级调试。
今天我们来一篇入门的文章。首先,Windbg是什么?
Windows Debugger,简称WinDbg,.NET 最强分析调试利器。它可以用来:
- 调试内核模式和用户模式代码
- 分析Crash dump
- 分析代码执行时 CPU 寄存器信息
我们可以通过WinDbg调试以下具体问题:
- 线程阻塞
- 内存泄露
- 分析查询运行时线程堆栈和变量
- 分析进程Crash原因
- 分析消耗CPU原因
- 查看并调试CLR异常
那么,首先我们先进行Windbg下载安装、配置。
一、下载安装WinDbg,配置调试环境
1. 推荐下载链接
https://raw.githubusercontent.com/EasyDarwin/Tools/master/Windbg_x86_x64/dbg_amd64.msi
或者从Windows Store下载 WingDbg Preview版本
下载后一步一步安装即可
2. 配置调试符号
大家会问一个问题:为什么要配置调试符号?
若要使用 WinDbg 提供的所有高级功能,必须加载适当的符号:比如说我们可以调试、查看.NET CLR程序堆栈,此时要加载对应的调试符号。
微软提供了统一的调试服务服务器地址:
http://msdl.microsoft.com/download/symbols,将这个地址提供的调试符号,下载缓存到本地,Windbg调试的时候可以用上。
srv*c:\symcache*http://msdl.microsoft.com/download/symbols;c:\symcache
3. 下载并使用WinDbg调试器扩展
Windbg调试器扩展是Windbg调试的精华和核心,可以这么说,掌握各类Windbg调试器扩展,你就掌握了各类调试技能。
默认情况下,WinDbg的调试指令是有限的,通过一些WinDbg调试器扩展,可以方便我们进行.NET 程序调试
SOS调试扩展: 随着.NET Framework安装,可以直接加载: .load sos clr
SOS这个dll在哪里呢(分32位和64位)?
4.0, 32-bit –> C:\Windows\Microsoft.NET\Framework\v4.0.30319
4.0, 64-bit –> C:\Windows\Microsoft.NET\Framework64\v4.0.30319
MEX调试扩展:This extension is widely used by Microsoft Support Engineers in troubleshooting process applications
下载地址: https://www.microsoft.com/en-us/download/details.aspx?id=53304
下载完成后,将32/64位的Mex.dll 拷贝到windbg安装目录中
例如:C:\Program Files\Debugging Tools for Windows (x64)\Mex.dll
详细使用说明: https://github.com/REhints/WinDbg/tree/master/MEX
下载、安装、配置完成Windbg之后,接下来我们了解一下一些基本的调试命令。
二、基本的WinDbg调试指令
1. WinDbg自带的调试指令
更多指令,可以查看一下链接:
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/getting-started-with-windbg
2. SOS调试扩展常用的调试指令
3. Mex调试扩展常用的调试指令
更多Mex调试指令,可以查看链接: https://github.com/REhints/WinDbg/tree/master/MEX
以上是整个Windbg调试入门篇的介绍,希望大家能够掌握,下一篇我们将通过一些具体的案例,示意各个指令的使用场景。
周国庆
2020/6/27
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Node 调试工具入门教程
- Xcode Instruments调试swift入门教程
- Go 语言零基础入门三步曲系列(三) —— 单元测试、问题定位及代码调试
- iOS常用调试方法:断点调试
- 断点调试和日志调试之间的平衡点:函数计算调试之 Python 篇
- VisualStudio 通过外部调试方法快速调试库代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Dive Into Python 3
Mark Pilgrim / Apress / 2009-11-6 / USD 44.99
Mark Pilgrim's Dive Into Python 3 is a hands-on guide to Python 3 (the latest version of the Python language) and its differences from Python 2. As in the original book, Dive Into Python, each chapter......一起来看看 《Dive Into Python 3》 这本书的介绍吧!