一:背景 1. 講故事 前幾天公眾號里有位兄弟看了幾篇文章之後,也準備用windbg試試看,結果這一配就花了好幾天,(づ╥﹏╥)づ,我想也有很多躍躍欲試的朋友在配置的時候肯定會遇到這樣和那樣的問題,所以我覺得有必要整理一下,讓大家少走彎路。 二:一些基礎概念 1. 在哪下載 現在安裝windbg越來 ...
一:背景
1. 講故事
前幾天公眾號里有位兄弟看了幾篇文章之後,也準備用windbg試試看,結果這一配就花了好幾天,(づ╥﹏╥)づ,我想也有很多躍躍欲試的朋友在配置的時候肯定會遇到這樣和那樣的問題,所以我覺得有必要整理一下,讓大家少走彎路。
二:一些基礎概念
1. 在哪下載
現在安裝windbg越來越麻煩,還要安裝Windows 10 SDK,很多人就栽在這裡,其實大家可以直接在網上找一鍵打包的windbg 6.0版本即可,才30多M,調生產調本地都很方便,順帶還可以練練SOS命令。
雲盤:https://pan.baidu.com/s/1VqXVIGVHxAZVPNds1525Jg 提取碼:mahg
外網:http://www.33lc.com/soft/96743.html
2. 版本問題
解壓打開會有一個x64和x86文件夾,很顯然,32位的程式用x86下的windbg調試,64位的程式用x64的windbg調試,如下圖:
3. 其他的問題
我比較喜歡用64bit程式,所以這裡使用64位的windbg。
<1> 配置微軟公有符號
符號其實就是pdb文件,我們在debug模式下編譯項目都會看到這個,它的作用會對dll進行打標,這樣在調試時通過pdb就能看到局部變數,全局變數,行號等等其他信息,在FCL類庫中的pdb文件就放在微軟的公有伺服器上,SRV*C:\mysymbols*http://msdl.microsoft.com/download/symbols
。
<2> 理解sos.dll和clr.dll
很多時候大家都是事後調試,所以需要在生產上抓一個dump文件,為了將dump文件逆向到clr上的運行時狀態,你必須要尋找到當時運行程式clr版本,同時也要找到對應clr版本的sos.dll,他們通常是在一起的,sos 就是 你 和 clr交互的渠道,很多人都卡在尋找正確版本的sos和clr版本上。。。如果不清楚,我可以畫張圖。
有了這個前置基礎,接下來就可以在windows和centos上進行配置實踐了。。。