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