菜鳥在寫c程式的時候最害怕就是遇到segmentation fault (core dumped),遇到段錯誤可以嘗試從gdb除錯來分析core檔案從而定位問題**。然而,預設情況下是不生成core檔案的,至少在我的ubuntu上,可執行程式的路徑下就沒有生成core-file。
檢視ulimit -a 得到如下資訊
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15992
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
posix message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 15992
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
看到core file size 預設是0,所以就沒有core file生成,可以通過命令 ulimit -c unlimited 來設定core file size 為unlimited
如果寫了乙個c函式,用gdb除錯的時候 bt檢視棧資訊
gdb除錯經驗(1)
在linux下編寫c 並且執行程式時,經常會出現segmentation fault core dumped 程式執行崩潰的情況。但是一般情況下都不會顯示在 出錯,而有時候一步一步除錯又很麻煩。在vs2012下知道可以使用alt 7鍵來檢視導致錯誤的函式棧,從而知道究竟是哪個函式出現了問題。在lin...
gdb除錯 基礎(1)
前言gdb除錯不同於介面化的除錯,雖然命令非常簡單,但上手比較有難度。對於從沒使用過gdb的人來說,可以考慮裝乙個python外掛程式 gef 當然也可以不裝,只是為了方便顯示除錯資訊而已。會使用gdb的可以直接跳到後面閱讀 附有gdb操作命令 外掛程式安裝步驟 以普通使用者身份,進入使用者目錄 c...
gdb多執行緒除錯1
gdb對於多執行緒程式的除錯有如下的支援 執行緒產生通知 在產生新的執行緒時,gdb會給出提示資訊 gdb r starting program root thread new thread 1073951360 lwp 12900 new thread 1082342592 lwp 12907 以...