修改程式BUG也可以用些修機器的思維

2021-06-09 20:48:01 字數 788 閱讀 4899

早些年剛畢業時候,幹過一小段時間的電子裝置維護,後幹上了軟體開發,回顧起來,兩者也有很多相似的地方。正所謂方法是相通的,只是用的地方不一樣而已;不管做什麼事情,學會使用方法是最重要的。

那時候修機器首先第一步就是熟悉裝置,需要看裝置使用說明書並了解裝置執行原理,最高境界是需要要讓裝置的傳動、電路、油路、氣路都可用在自己的大腦中run起來。同樣,程式bug修改的基本要求,跟起何其相似,需要熟悉程式的源**與開發設計文件,如果能做到讓程式每個模組每個信令流和資料流以及執行緒程序在自己大腦中執行起來,那麼對該軟體也很熟悉了,解什麼bug也都輕而易舉。

修機器的第二步,當然就是熟練運用萬用表、示波器等工具提取故障裝置狀況的很多資訊,同時結合裝置電流電壓表等指示器獲取裝置輸出詳細資訊,有了這些資訊,可以了解到裝置的執行狀態和問題所在。修改軟體的bug同樣如此,當軟體bug出來後,舉個例子我們可以用各種工具獲取軟體的bump資訊,dll呼叫資訊等了解軟體執行狀況,如果軟體有日誌輸出,它就是裝置的電流電壓表或者裝置資訊記錄儀儲存著軟體執行的寶貴資訊,對bug定位幫助很大。

修機器的第三步,就是定位問題發生的地方了,對於維護人員,定位到小電器或大電器的電路板基本就解決問題了。乙個簡單的定位方法就是用好的模組將可疑模組換上,如果裝置恢復正常,那麼我們就可以在這個模組再用上述方法迭代去更準確的定位問題模組。對於軟體bug,特別是成熟產品的bug出來後,最好先從軟體執行的環境配置、網路狀況、檔案版本等巨集觀大範圍去判斷,不要一開始就鑽到**中試圖除錯**去解決問題。一時定位不准的bug,換個執行環境看看軟體是否恢復正常?將模組逐個退回上個版本,看看是否能恢復正常?這同樣是乙個從粗到細的定位問題過程,直至找到問題發生模組。

再次改程式BUG

char型的字串,一定不能直接 或 要用strcmp和strcpy。sqlite3資料庫不支援變數,所以要先把命令,用sprintf格式化一下。查詢錯誤 1,在不同地方printf列印資訊,檢視是否是自己想要的結果。2,如果程式不長,時間複雜度不大,可以嘗試帶一些特殊值進去,一步步檢視。3,gdb除...

VC 修改程式游標Cursor

1.首先使用loadcursor,載入游標 假如是系統游標可以不用destroycursor,要是自己必須destroycursor m hcursor loadcursor null,idc wait 2.使用setcursor設定 3.過載訊息函式wm setcursor bool c onse...

Android studio 修改程式包名

公司專案都是用eclipse開發的,但是android studio開發已經是大勢所趨了,所以在閒暇之餘使用了一下androidstudio,這裡對androidstudio更改專案包名做一下總結,因為自己在改包名的時候走了不少彎路,為自己mark一下,閒話少說無圖無真相,直接上操作步驟 首先說明一...