搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 新阁Net社群 > .NET高级调试系列-Windbg调试入门篇

.NET高级调试系列-Windbg调试入门篇

新阁Net社群 2020-06-27

Windbg是.NET高级调试领域中不可或缺的一个工具和利器,也是日常我们分析解决问题的必备。准备近期写2篇精华文章,集中给大家分享一下如果通过Windbg进行.NET高级调试。

今天我们来一篇入门的文章。首先,Windbg是什么?

Windows Debugger,简称WinDbg,.NET 最强分析调试利器。它可以用来:

  • 调试内核模式和用户模式代码

  • 分析Crash dump

  • 分析代码执行时 CPU 寄存器信息

我们可以通过WinDbg调试以下具体问题:

  • 线程阻塞

  • 内存泄露

  • 分析查询运行时线程堆栈和变量

  • 分析进程Crash原因

  • 分析消耗CPU原因

  • 查看并调试CLR异常

那么,首先我们先进行Windbg下载安装、配置。

一、下载安装WinDbg,配置调试环境

1. 推荐下载链接

从Windows Store下载 WingDbg Preview版本

.NET高级调试系列-Windbg调试入门篇

下载后一步一步安装即可

 2. 配置调试符号

大家会问一个问题:为什么要配置调试符号?

若要使用 WinDbg 提供的所有高级功能,必须加载适当的符号:比如说我们可以调试、查看.NET CLR程序堆栈,此时要加载对应的调试符号。

1

1

srv*c:\symcache*http://msdl.microsoft.com/download/symbols;c:\symcache

.NET高级调试系列-Windbg调试入门篇  

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

 下载完成后,将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自带的调试指令

 .NET高级调试系列-Windbg调试入门篇

   .NET高级调试系列-Windbg调试入门篇

 2. SOS调试扩展常用的调试指令

   .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

  .NET高级调试系列-Windbg调试入门篇

 .NET高级调试系列-Windbg调试入门篇 .NET高级调试系列-Windbg调试入门篇

  .NET高级调试系列-Windbg调试入门篇

  .NET高级调试系列-Windbg调试入门篇

  .NET高级调试系列-Windbg调试入门篇

 .NET高级调试系列-Windbg调试入门篇

  .NET高级调试系列-Windbg调试入门篇

   3. Mex调试扩展常用的调试指令

   .NET高级调试系列-Windbg调试入门篇

     .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

    .NET高级调试系列-Windbg调试入门篇

  以上是整个Windbg调试入门篇的介绍,希望大家能够掌握,下一篇我们将通过一些具体的案例,示意各个指令的使用场景。

.NET高级调试系列-Windbg调试入门篇

推荐阅读

Recommended reading





点击下列标题  阅读更多专业知识







点击“阅读原文”查看更多



版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《.NET高级调试系列-Windbg调试入门篇》的版权归原作者「新阁Net社群」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注新阁Net社群微信公众号

新阁Net社群微信公众号:thinger_net

新阁Net社群

手机扫描上方二维码即可关注新阁Net社群微信公众号

新阁Net社群最新文章

精品公众号随机推荐

下一篇 >>

聊聊CSRF那些事