C# 基礎(十三)C# 軟體開發過程中,可執行檔案.exe 出現bug,該怎麼排查、解決:找到出現bug的位置
一、簡介
之前是完成了寫軟體,從而實現軟體的基本功能。到了今天,需要對自己寫的可執行檔案.exe找bug了。那麼下面,我將結合自己的軟體的使用過程中,講自己的經驗融入進來,解釋下什麼是bug、以及該怎麼找Bug。
二、Bug的分類
主要參考:
https://blog.csdn.net/wybing/article/details/398120(將Bug的來源,很詳細闡明瞭,看完這篇就夠了)
★邏輯類:結構、演算法等在程式高度執行下,相當於人腦思考東西吧,會出現紊亂。主要原因是架構、演算法存在問題。
★移植類:移植別人的庫等,會出現不相容等問題。
三、排查Bug的方法(你可以看看麥肯錫系列書記,方便發現並分析 問題的本質 )
我在麥肯錫系列書籍中,學習到了分析問題的本質。同理,其相關方法可以用在軟體上,從而找出bug根源。目前,網上很多部落格說的都是屁話,基本上沒有提供很詳細的介紹。這裡我詳細總結一番,說說如何如何找Bug。
方法1:斷點——只能在非可執行檔案.exe中,即在原始碼工程中才使用。
方法2:寫日誌——在你的程式碼中,多新增一些日誌。
方法3:事件檢視器——應用程式——錯誤資訊——常規,排查自己的應用程式,會定位到自己可執行KeenRay.exe專案中,資料夾SocketServer中,類SendProtocol中的方法SendProtocolFunc:
其中
.net runtime —— 表示.exe執行時用到的.net模組,發生了錯誤。
Applicaion Error——表示.exe執行錯誤
Windows Error Reporting——系統錯誤
四、總結
1、找Bug,就像做人一樣,要做到細膩。專案或程式有bug,即使你覺得不是你的問題,也要和Team、特別是領導,善於交流,不要太武斷。多虛心學習,多請教別人,你會發現,專案越龐大,Bug越複雜化,就越需要一個人的修養,才能解決問題。
2、先用方法3(找函式的位置),再用方法2(找該函式的某一行),最用用方法1來單步執行(找該行的變數)。可以完美地找到Bug出現在哪。