《Advanced Windows Debugging》学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 看完了很久,也一直没有完成这篇博客,在项目使用中,大多数还是用到其中的一些命令去解析,目前没有太多机会,可以让自己用基本命令去锻炼一下“遍历堆链表”等高级调试技巧。
看完了很久,也一直没有完成这篇博客,在项目使用中,大多数还是用到其中的一些命令去解析,目前没有太多机会,可以让自己用基本命令去锻炼一下“遍历堆链表”等高级调试技巧。看完这本书给我最大的感觉是:
当你觉得你有些比较难解决的调试或检测问题的时候,不妨查一查是不是有相应的工具。开发过程中需要的各种分析、检测、调试工具,这本书上都有或多或少的讲解。
  1. WinDbg 堆栈解析能力天生比vs强很多。每当程序宕掉,发现Visual studio 的【Call Stack】窗口全是汇编地址的时候,我会果断【打开 WinDbg 】-》【非入侵式Attch】,然后 WinDbg 的【Call Stack】窗口中就会显示正常的函数符号。这实际是 WinDbg 对被破坏的调用站栈,进行深度解析的结果,从而能够恢复出调用堆栈。
  2. 除了Wbg之外,最常用的还是GFlagAppVerifLeakDiag这几个工具,具体的用法我觉得其他的文档讲的已经非常好了。
  3. 另外Dump的解析当中,!analyze -v是个非常好用的命令,把一般Dump的解析过程封装成一个命令,只需敲一个命令,你就能得到最关键的信息,如调用堆栈。
另外作为福利,放上一个的Dump自动解析工具:


前提条件:
  1. 安装WinDbg,将WinDbg所在目录设置为环境变量目录。

使用说明:
  1. 将dump对应的所有pdb放入pdb_src目录下。

  2. 拖拽pdb_src目录至pdbstore.bat(实际上相当于把pdb_src路径作为参数,传递给pdbstore.bat),产生pdb tree(WinDbg天生支持的一个exe不同版本的pdb生成一个pdb tree,根据dump智能找到对应的pdb)

  3. 将所有的dump压缩包放入DumpZip文件夹(没有就新建此文件夹)中,然后拖动DumpZip文件夹,将其放入0_BatchDumpProcessor.bat 的批处理中(相当于使用命令:0_BatchDumpProcessor.bat DumpZip全路径)。

  4. 如果不是dump压缩包,即最终的dump文件,将所有的dump放入Dump文件夹(没有就新建此文件夹)中,然后拖动Dump文件夹,将其放入0_BatchDumpAnalyze.bat 的批处理中。

文件说明:
  1. 0_BatchDumpProcessor.bat 

    完整Dump分析批处理,先解压目录下所有dump的压缩包,然后逐一解析dump,并将解析结果汇总到一个execl表中。execl表中会显示某种dump宕了多少次,以及相应的堆栈调用。

  2. 0_BatchDumpUnzip.bat

    解压指定目录下所有dump压缩包。

  3. 0_BatchDumpAnalyze.bat

    解析一个目录下所有dump文件,将所有解析结果的text文件,放到另外一个目录。

  4. dumpanalyze.bat

    解析一个dump文件,输出一个解析结果文件。

  5. 0_BatchDumpAnalyzeExtractor.bat

    解析一个目录下所有text文件,将其中调用堆栈抽离出来,汇总到一个execl表中,方便浏览查看。

  6. DumpFileExtractor.exe

    dumpanalyze.bat调用的实际程序。

  7. unzip.exe

    0_BatchDumpUnzip.bat调用的实际程序。
相关文章
|
Arthas 缓存 Java
在 Windows 下的 Arthas 快速安装 | 学习笔记
快速学习在 Windows 下的 Arthas 快速安装
在 Windows 下的 Arthas 快速安装 | 学习笔记
|
27天前
|
Windows
重装系统学习笔记(一):Windows10重装步骤(正版)
这篇博客文章详细介绍了如何使用微软官方工具重装Windows 10系统,包括下载安装工具、准备U盘、设置BIOS以及系统安装的步骤。
36 0
重装系统学习笔记(一):Windows10重装步骤(正版)
|
2月前
|
Docker Windows Python
Windows-Docker学习笔记(一)
本文介绍了Windows环境下Docker的安装与使用方法。首先通过链接下载Windows版本的Docker,然后按步骤配置:启用Windows功能、设置默认WSL版本为2,并检查Docker及其组件是否正常工作。接着详细列出了Docker的基础命令及其用法,包括搜索、下载镜像、管理容器等。同时介绍了Dockerfile的编写方法及其构建过程,以及docker-compose.yml文件的用途。最后提供了运行和管理容器的具体示例。
Windows-Docker学习笔记(一)
|
6月前
|
网络协议 Shell vr&ar
某教程学习笔记(一):1、windows基础
某教程学习笔记(一):1、windows基础
33 0
|
编解码 网络协议 Windows
|
数据安全/隐私保护 Windows
第二轮学习笔记:二、Windows基础
第二轮学习笔记:二、Windows基础
89 0
第二轮学习笔记:二、Windows基础
|
网络协议 安全 Oracle
某教程学习笔记(一):1、windows基础
某教程学习笔记(一):1、windows基础
118 0
某教程学习笔记(一):1、windows基础
|
存储 弹性计算 固态存储
NAS 入门与提高系列之如何在 Windows 下使用 NAS |学习笔记
快速学习 NAS 入门与提高系列之如何在 Windows 下使用 NAS
NAS 入门与提高系列之如何在 Windows 下使用 NAS |学习笔记
|
编解码 网络协议 C语言
|
NoSQL Shell Linux
Windows 启动和部署 | 学习笔记
快速学习 Windows 启动和部署
123 0
Windows 启动和部署 | 学习笔记