當機除錯法

小朋友:...
老王:...
小朋友:...
老王:兄弟怎麼了?
小朋友:老大,最近我在作的XXX在YYY的時候一直會ZZZ,不知道怎麼搞的,我已經看Code看了幾天了,一直找不到問題。
老王:為什麼不動手去找Bug呢?看Code太花時間了,也太難看出問題來。
小朋友:我也想,但實在是沒辨法啊... T_T
老王:不行Trace?
小朋友:不行... T_T
老王:不行丟訊息?
小朋友:不行... T_T
老王:Draw Something也不行?
小朋友:T_T
老王:丟Port也不行?
小朋友:嗚嗚嗚... T_T
老王:讓它叫一叫也不行?
小朋友:嗚嗚嗚... T_T
老王:....
小朋友:老大,還有什麼招式可以教教我嗎?
老王:好吧,這個時候就只好用我最後的絕招了!這是從我最尊敬的林老師那裡所繼承得到的絕招。據我所知,這個絕招原本只有三個人懂,一個是林老師,一個是我,另一個已經不在了,現在我傳授給你。
小朋友:(肅然起敬)
老王:聽好了!我最尊敬的林老師告訴過我說:你要當!就讓它當!
小朋友:...??
老王:好了,以上就是禁斷的絕技當機除錯法的要訣。現在跟著我再複頌一遍。
老王 and 小朋友:你要當!就讓它當!


老王:這是在任何方法都無效的情況之下,最後的Debug手段了,它的另一個別名叫作人工Debugger。這是因為我們要用人工的方法,一步一步的讓我們的程式在我們自己指定的地點造成當機,用這個手段來檢驗追踪程式執行的流程。這是個萬不得已的笨方法,很慢很花時間,但也只能用這個辨法了。
小朋友:我大概有點懂了。
老王:想辨法去找到可疑的問題點,再配合當機法慢慢夾擠,找到問題所在。總之,這個辨法的應用也還要再根據遭遇到的問題,配合應用。我最尊敬的林老師曾經告戒過我說:找Bug,無論如何就是要不擇手段。你懂了嗎?
小朋友:嗯嗯,Yes Sir!我再去試試看。

(三個星期後....)

小朋友:老大!老大!哈哈哈,這下子終於讓我找到問題了!!!
老王:嗯,很好。怎麼找到的啊?
小朋友:我把電腦重灌,再重灌一次VC就可以Trace了。 ^_^
老王:......

留言

這個網誌中的熱門文章

以lex/yacc實作算式計算機

猜數字遊戲 (電腦猜人)

KillSudoku 4顆星精彩數獨詳解 - 鍊技巧