段錯產生原因及除錯技巧

2021-10-07 08:54:17 字數 492 閱讀 3496

產生段錯誤是因為訪問了不該訪問的空間,比如:

1、對空指標(指向位址為null的指標)進行操作。

2、對野指標(未被初始化的指標)進行操作。

3、陣列越界。

4、用指針對陣列進行操作,指標偏移到了陣列長度之外。

5、對唯讀空間進行操作,比如,操作.rodata空間區域,字串常量(如字串"hello")便是儲存在該區域。

在用c語言寫**過程中,稍不留意就會產生段錯誤,遇到這種情況如何快速定位到問題地方,這裡有乙個小技巧。

將出問題的地方列印出來。具體**如下:

printf

("%s %d"

,_function_,_line_)

;

語句中:

_function_是編譯器的巨集,表示當前函式的名字。

_line_也是編譯器的巨集,表示當前的行數。

段錯誤的原因及除錯方法

一句話來說,段錯誤是指訪問的記憶體超出了系統給這個程式所設定的記憶體空間,例如訪問了不存在的記憶體位址 訪問了系統保護的記憶體位址 訪問了唯讀的記憶體位址等等情況。1.訪問不存在的記憶體位址 int ptr null ptr 0 2.訪問系統保護的記憶體位址 int ptr int 0 ptr 10...

onvif 段錯除錯辦法

希望對大家有幫助 來自於 1 開啟onvif除錯開關,以便讓onvif列印一些可用的除錯資訊。在makefile中新增除錯巨集定義如 cc gcc ddebug 2 開啟除錯巨集後,預設在程式執行的目錄產生三個檔案 recv.log sent.log test.log recv.log是onvif接...

雜訊產生原因 軌道交通振動與雜訊產生原因及分類

1 軌道交通振動與雜訊產生的原因 當列車以一定速度通過軌道時,由於存在各種各樣的激振源,車輛和軌道都會在空間各個方向產生振動。引起振動強弱的原因有軌道幾何形位的靜 動態不平順,鋼軌頂面波浪形磨耗,軌面擦傷 鋼軌接頭,列車速度的高低,車輪踏面擦傷 車輪偏心及不圓順等各種激振因素。由於車輛和軌道這兩個系...