偵錯程式終於有點眉目了,雖然還是只是個玩具.連寫帶參考別人拷貝的,一共8000多行,從來沒搞過這麼多**的東西,而且是短時間的。這樣看,以後自己寫的小東西規模也會增大了,畢竟有第一次就會有第二次
對於大於2000行的以上的東西,一定先規劃好程式流程和介面,否則最後寫的就不知道是啥了,而且一定要深刻理解需求只有理解了需求,才能設計出較好結構,而實現只是水到渠成.
雖然每天都做筆記,實現乙個功能前都先想想怎麼寫,在第一天寫**之前,已經做了十幾頁的筆記,並大概畫了流程圖.最後還是因為對某些功能的實現不是很理解,導致繞了不少彎路,比較鬱悶。
通過這次專案還是積累了一些以後能用到的東西:
乙個訊息處理框架
命令列下介面執行緒與功能執行緒一起執行的經驗
資料結構使用經驗
體會到清晰的流程,邏輯簡單的**的好處
另:有個好用自己又順手的文字編輯器很重要阿,這是工作效率提高的保障.
**的編寫和修改我基本都是用的geany for windows來做的,因為功能簡單夠用,而且快捷鍵很舒服修改也直觀.除錯和工程管理是使用的vs2008。自己參考geany的幫助檔案把windows sdk的標頭檔案的tags檔案給導進去了,可以有基本的api掉用意識了,不過還是很一般.這是唯一不滿意的地方吧
雖然gtk在windows下表現一般,而且更新了新版本之後,開啟多檔案有點慢,不過確實很順手,呵呵,贊乙個
專案做的差不多了,把geany的**svn回來,一共12w行的c**……
說下未完成又不打算做的吧:
多記憶體斷點未實現
記憶體斷點跨頁情況未處理
依附程序未實現
步入未判斷到系統**中的情況(可能不可讀,掛掉)
日誌(這個可恥的失敗了…寫了一天,本來打算寫個多執行緒日誌寫入,搞了一天,同步還是沒搞好,每10w條,總丟十條。不敢在這上面多耗費時間,回去慢慢寫吧)
大體就這些了。
感覺最偵錯程式最複雜了就是記憶體斷點的邏輯處理
**不多,但很繞,100多行寫了一天
總計12天,**總計8000行,有效**6500行,刨去反彙編引擎用google到的乙個,不是自己寫的,還有資料結構200行不是自己寫的,每天300多行,效率還是偏低。主要是頭5天寫的,後來一直在改錯、修繕,真是編碼容易,除錯難啊……
之前還寫了個還算能用的純c pe格式解析的**,iat、imt都能解析,300多行。有空也貼上來
Windbg 偵錯程式原始碼除錯方法總結
windbg 除錯工具是一款功能豐富的windows 程式除錯工具,可以利用程式崩潰時生成的dump檔案,指定與之對應的程式 exe dll 以及相應的pdb program data base 檔案,指定pdb符號檔案位置 指定原始碼檔案位置 下面是常用的windbg除錯命令 1 analyze ...
gdb偵錯程式命令學習總結筆記
linux中包含有乙個很有用的除錯工具 gdb gnu debuger 它可以用來除錯c和c 程式,功能不亞於windows下的許多圖形介面的除錯工具。和所有常用的除錯工具一樣,gdb提供了以下功能 監視程式中變數的值 在程式中設定斷點 程式的單步執行 在使用gdb前,必須先載入可執行檔案,因為要進...
gdb偵錯程式學習與總結(熟能生巧)
gcc原來的意思是gnu c compiler,現在的意思是gnu compiler collection,gdb是gnu debugger,在本文 我們學習並總結gdb的使用。1.不是所有的可執行檔案,都可以用gdb來debug,必須使用帶有除錯資訊的可執行檔案。gcc g test.c 其中 g...