如何學習WindDbg

2021-09-01 22:05:25 字數 722 閱讀 7002

作為一名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指令碼。

學習如何學習

學習了這麼多年,感覺都不知道如何學習?那麼今天蒐集一些資料,總結一下。邏輯推理不能激勵你學習。去嘗試發現每個主題之美,並試著將它與你生活裡的事情相關聯。如 這種聯絡可能是有意識的 也就是說做化學反應 物理試驗或手動數學計算是為了證明乙個定理或公式 或許是無意識的 例如,你去公園和看葉子。然後你想到你...

學習如何學習

作為乙個有效的學習者至少與成為一名高效的編碼人員一樣重要。當你是一名開發人員時,你的工作要求你每天都要學習 儘管像黑客新聞,twitter,reddit和facebook一樣引起了分心。您經常遇到新的 庫和工作中的新技術挑戰。當你處理開源回購和個人專案時,家庭並不是更好,每個專案都有自己的流程和挑戰...

如何學習Linux

隨著linux應用的擴充套件許多朋友開始接觸linux,根據學習windwos的經驗往往有一些茫然的感覺 不知從何處開始學起。這裡介紹學習linux的一些建議。一 從基礎開始 常常有些朋友在linux論壇問一些問題,不過,其中大多數的問題都是很基礎的。例如 為什麼我使用乙個命令的時候,系統告訴我找不...