作為一名Windows平臺(tái)上的C/C++開發(fā)人員,我們有N個(gè)學(xué)習(xí)WinDbg的理由:
有些Bug只有在客戶和QA的機(jī)器上才能重現(xiàn),我們不可能在他們的機(jī)器上裝一個(gè)VC吧
WinDbg可以讓我們方便的保存和分析Dump文件
WinDbg的調(diào)試功能比VC強(qiáng)大的多,比如它有強(qiáng)大的API斷點(diǎn)和條件斷點(diǎn)
調(diào)試內(nèi)核和驅(qū)動(dòng),我們只能用WinDbg
用WinDbg可以讓你更深入的理解系統(tǒng),理解計(jì)算機(jī),用VC你看到的是自己的代碼,用WinDbg你看到的是整個(gè)進(jìn)程
......
最重要的,微軟用WinDbg開發(fā)和調(diào)試Windows操作系統(tǒng),它是Windows平臺(tái)上最重要的調(diào)試工具.
要用好WinDbg,我認(rèn)為有幾個(gè)重要的基本知識(shí)需要了解和掌握:
首先要了解PE文件格式,它告訴我們的Exe(Dll)的內(nèi)部結(jié)構(gòu),執(zhí)行時(shí)它是如何映射和加載到內(nèi)存中的
接下來我們要知道程序運(yùn)行時(shí)內(nèi)存中究竟有哪些東西, 它們的頁面屬性,他們是如何分布的,比如Stack, Heap, Modules等
還有就是要知道程序是如何運(yùn)行的,每個(gè)線程都有自己的堆棧,CPU是如何從程序入口開始取一條條指令執(zhí)行,執(zhí)行過程中堆棧(Stack)是如何變化的
當(dāng)然,你需要學(xué)習(xí)一點(diǎn)匯編知識(shí),不一定要會(huì)寫,但起碼要能看懂匯編。
有了上面這些基本知識(shí),接下來你只要學(xué)習(xí)下WinDbg的基本命令就可以入門了,
后面你要做的就是在工作中盡量多用WinDbg調(diào)試程序,并嘗試寫一些WinDbg腳本。
個(gè)人收集的一些WinDbg資料:
WinDbg參考資料
posted on 2012-08-15 14:12
Richard Wei 閱讀(4542)
評論(6) 編輯 收藏 引用 所屬分類:
windbg