除錯程式光靠工具是不行的!

2021-05-22 04:55:03 字數 494 閱讀 4489

今天遇到乙個程式退出的問題,沒次都crash,但是就是沒有crash log

沒辦法上ollydebug 簡單的看了下問題,堆疊都被毀了,出錯的位置在乙個不知道是什麼的模組中

最後沒有辦法,上了windbg,

用windbg啟動程式,先g,讓程式執行起來,通常偵錯程式是會在程式的入口點斷一下函式的

接著,我就退出了函式,當然的,程式crash了,檢查了下堆疊,什麼也沒有,就乙個threadstart的函式,說明不了任何問題。

接著lm,檢視了下當前載入的模組,有幾個模組已經退出了,退出的模組有幾個都不認識,不曉得是什麼,現在那麼多防毒的,輸入法等都注入,不曉得是那個程式硬塞進來的。

沒有辦法呼叫!analyze -v 讓windbg自己來分析這個異常的情況,它分析了一大堆,但是找到了個我根本不認識的模組,其它資訊也沒有什麼用,

看來這個時候windbg等偵錯程式是沒有用的,索性乙個乙個模組的修改看效果,終於乙個同事通過修改乙個模組解決了問題,很開心,終於可以不加班了。

除錯程式的利器 printf

宣告 這些內容主要是面向c語言的初學者,尤其是正在學習c語言的學生。當排除了所有的語法錯誤,但執行結果卻不正確時,很多初學者往往束手無策,只好求助老師了,老師,我這個程式沒錯,但結果不正確 這是在上機課上經常聽到的聲音。初學者缺乏經驗,也缺乏耐心。殊不知每個程式設計師都是在不斷的和錯誤鬥爭的過程中成...

GDB除錯程式的使用

gdb概述 gdb是gnu開源組織發布的乙個強大的unix下的程式除錯工具。或許,各位比較喜歡那種圖形介面方式的,像vc bcb等ide的除錯,但如果你是在unix平台下做軟體,你會發現gdb這個除錯工具有比vc bcb的圖形化偵錯程式更強大的功能。一般來說gdb主要有三大功能 1 啟動被除錯函式 ...

除錯程式的好方法

修改程式bug時,尋找問題所在話費時間比較多,而當真正找到問題的原因後,修改問題其實就沒那麼難了,下面這個方法,能幫助我們快速查詢問題原因。private void logcaller stacktraceelement elements new throwable getstacktrace fo...