Linux下 錯誤除錯

2021-06-02 12:48:55 字數 334 閱讀 5721

1.訪問不存在的記憶體位址或系統保護的記憶體位址; 如在函式呼叫中,本來應將位址傳給指標引數,卻誤將值傳入,再如寫scanf函式時,忘記&位址符號;

2.訪問唯讀的記憶體位址;

3.棧溢位,如遞迴程式,沒有退出條件,無限遞迴導致棧溢位;

gdb除錯時發生錯誤:

「沒有符號表被讀取,請使用」file「命令,分析:-g引數沒新增對

多個檔案如何新增除錯資訊:

如有兩個原始檔:allsort.c和main.c,寫makefile時一般逐個編譯原始檔,最後加除錯資訊無效。所以除錯時要一起編譯才行  gcc -g -o main allsort.c main.c -std=c99

linux下產生斷錯誤的除錯方法

1.編譯 時,需要加上 g2.開發板上執行 ulimit c unlimited 此處是設定生成的 core 檔案大小 在開發板上執行時,如果有斷錯誤會有 segmentation fault core dumped 紅色標記生成了 core 檔案。如果沒有生成 core 檔案一般是沒有設定 cor...

Linux段錯誤除錯

1.單步除錯 編譯時加上 g,然後用gdb除錯,自然就知道出現段錯誤的地方在哪。2.利用core檔案來進行除錯 用ulimit c來檢視core檔案的最大值,如果是0就不會產生core檔案。此時可用ulimit c 1000將core檔案的最大值設定為1000k。ulimit c 1000只會影響當...

linux 核心模組除錯錯誤

各位,我在編譯核心模組時有乙個錯誤調了很久也沒解決,請那位仁兄幫忙看看,666 static init int cbac init void 667 689 690 cbac requires early initialization in order to label 691 all proces...