程式改錯總結

2021-04-12 20:50:26 字數 492 閱讀 2678

1。指標錯誤造成應用崩潰,指標在乙個地方被刪除了,但相應另乙個地方並沒有被置為空,或者在使用的時候沒有檢查是否為空,崩潰的地點往往在發生錯誤很久以後,但是可以通過debug版本來得到崩潰時的棧資訊和堆資訊,然後根據程式的日誌分析可能發生的問題。

2。記憶體洩漏,程式在執行過程中記憶體不斷增長,一般是由於分配的記憶體沒有被釋放,但是對於使用快取機制的程式來說很難跟蹤這一類問題,如果能夠把記憶體洩漏的地點限定在某些操作中,可以使用gdb來進行跟蹤,同時不斷檢查記憶體的堆資訊。配合使用各種記憶體檢測工具,一般來說比較容易查。

3。效能問題。如果應用所依賴的硬體和底層系統沒有變化,但應用的效能有了差別,其實是比較好跟蹤的,最簡單也是最笨的辦法就是檢查各個函式所占用的時間。如果底層發生了變化,就必須了解應用對底層具體依賴到什麼程度。最有說服力的還是資料。

4。phone hang,也就是ui freeze,一種是假的,ui部分太慢,嚴重滯後於輸入裝置,給使用者宕機的感覺。另一種是真正的,一般是負責介面的程序崩潰了,或者不小心進入了死迴圈。

程式改錯之分塊查詢

錯誤 include define maxsize 100 typedef struct indexelem indexelem index maxsize int indexsearch indexelem index,int m,int r,int n,int key i index high ...

17B 3程式改錯

糾正程式錯誤,要求 1 不能在func1函式中建立新的變數 2 不能把func1函式中的計算功能放到main函式中 3 不能把main函式的結果輸出功能放到func1函式中,就是不能將printf語句移動到func1中 include include include void func1 int a...

C語言改錯

改錯 第1題 給定程式modi1.c中函式 fun 的功能是 把在字串s中出現的每個字元,緊隨其後重複出現一次,形成乙個新串放在t中,t中字元按原字串中字元順序排列。例如 當s中的字串為 abaabbccddee 則t中的字串應為 aabbccddee 請改正函式fun中的錯誤,使它能得出正確的結果...