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