gdb除錯初學 1

2021-06-08 08:52:28 字數 1146 閱讀 6122

菜鳥在寫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 以...