欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

程序员文章站 2022-07-09 19:02:50
一:背景 1. 讲故事 前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所以我觉得有必要整理一下,让大家少走弯路。 二:一些基础概念 1. 在哪下载 现在安装windbg越来 ......

一:背景

1. 讲故事

前几天公众号里有位兄弟看了几篇文章之后,也准备用windbg试试看,结果这一配就花了好几天,(づ╥﹏╥)づ,我想也有很多跃跃欲试的朋友在配置的时候肯定会遇到这样和那样的问题,所以我觉得有必要整理一下,让大家少走弯路。

二:一些基础概念

1. 在哪下载

现在安装windbg越来越麻烦,还要安装windows 10 sdk,很多人就栽在这里,其实大家可以直接在网上找一键打包的windbg 6.0版本即可,才30多m,调生产调本地都很方便,顺带还可以练练sos命令。

云盘:https://pan.baidu.com/s/1vqxvigvhxazvpnds1525jg 提取码:mahg

外网:

2. 版本问题

解压打开会有一个x64和x86文件夹,很显然,32位的程序用x86下的windbg调试,64位的程序用x64的windbg调试,如下图:

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

3. 其他的问题

我比较喜欢用64bit程序,所以这里使用64位的windbg。

<1> 配置微软公有符号

符号其实就是pdb文件,我们在debug模式下编译项目都会看到这个,它的作用会对dll进行打标,这样在调试时通过pdb就能看到局部变量,全局变量,行号等等其他信息,在fcl类库中的pdb文件就放在微软的公有服务器上,srv*c:\mysymbols*http://msdl.microsoft.com/download/symbols

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

<2> 理解sos.dll和clr.dll

很多时候大家都是事后调试,所以需要在生产上抓一个dump文件,为了将dump文件逆向到clr上的运行时状态,你必须要寻找到当时运行程序clr版本,同时也要找到对应clr版本的sos.dll,他们通常是在一起的,sos 就是 你 和 clr交互的渠道,很多人都卡在寻找正确版本的sos和clr版本上。。。如果不清楚,我可以画张图。

教你配置windows上的windbg,linux上的lldb,打入clr内部这一篇就够了

有了这个前置基础,接下来就可以在windows和centos上进行配置实践了。。。