多執行緒中快速定位段錯誤位置

2022-08-26 10:15:12 字數 334 閱讀 7186

在做嵌入式linux開發的時候,程式很容易出現段錯誤。段錯誤一般是記憶體操作指標出錯或是記憶體溢位等問題,有的時候系統會有一點錯誤提示,但有的時候就直接提示個segmentation fault (core dumped) 。如果程式是單執行緒,那很好處理,編譯的時候新增引數-g  ,直接使用gdb 單步除錯就可以直接定位到問題點在哪了。但是對於多執行緒,情況就不一樣了。多執行緒進行單步除錯不好處理,並且時候程式需要執行很久才出來段錯誤。這樣直接使用gdb單步除錯就不合適了。這裡提供一種快速定位段錯誤的方式。

1.ulimit 命令設定core檔案的最大值

1.1執行ulimit -a, 檢視core檔案的最大值,一般預設值是0

通過GDB快速定位「段錯誤」的位置

有些時候我們在一段 c c 的時候,由於對乙個非法記憶體進行了操作,在程式執行的過程中,出現了 segmentation fault core dumped 段錯誤。呵呵,這種問題我想很多人會經常遇到。遇到這種問題是非常無語的,只是提示了 段錯誤 接著什麼都沒有,如果我們一味的去看 找太疼苦了,因為...

Linux中快速定位段錯誤的方法

在做嵌入式linux開發的時候,程式很容易出現段錯誤。段錯誤一般是記憶體操作指標出錯或是記憶體溢位等問題,有的時候系統會有一點錯誤提示,但有的時候就直接提示個segmentation fault core dumped 如果程式是單執行緒,那很好處理,編譯的時候新增引數 g 直接使用gdb 單步除錯...

定位段錯誤所在位置

執行緒建立需要使用prctl函式來指明執行緒名字,此名字將會在段錯誤時顯示出來 沒有了,好像 proc task yyy status 程序號,yyy 執行緒號,task 執行緒目錄,status 狀態檔案 status 檔案下有sigblk標誌,當然也有其它的,但這個作用於段錯誤說明。sigblk...