總結:1.開啟coredump開關
登陸 linux 伺服器,任意位置鍵入
echo "ulimit -c 1024" >> /etc/profile(1024 限制產生的 core 檔案的大小不能超過 1024kb,可以使用引數unlimited,取消該限制)
退出 linux 重新登陸 linux
鍵入 ulimit -c,如果顯示 1024 那麼說明 coredump 已經被開啟。
2.設定 core dump 的核心轉儲檔案目錄和命名規則
echo "/tmp/core-%e-%p" > /proc/sys/kernel/core_pattern
將會控制所產生的 core 檔案會存放到 /corefile 目錄下,產生的檔名為 core- 命令名 -pid- 時間戳
解析:/proc/sys/kernel/core_uses_pid 可以控制產生的 core 檔案的檔名中是否新增 pid 作為擴充套件 ,如果新增則檔案內容為 1 ,否則為 0。
proc/sys/kernel/core_pattern 可以設定格式化的 core 檔案儲存位置或檔名 ,比如原來檔案內容是 core-%e
3.帶g編譯問題程式
gcc -o main -g a.c
4.gdb除錯
gdb main /tmp/core-main-10815
linux下 c程式崩潰時產生core檔案的設定
c程式執行崩潰時,如果能夠自動產生core檔案,會對問題的分析和定位有一定的幫助,但是需要一定的設定才可以開啟該選項 如果程式本身有問題,在崩潰時,可能會產生core檔案 注意 不是一定會產生的 產生的core檔案預設是在執行檔案的目錄下,但也可以指定 修改 etc security limits....
linux核心態使用者態
概述 linux系統使用者態和核心態相關知識,linux核心版本為3.10.79。使用者態和核心態定義 核心態 cpu可以訪問記憶體所有資源,包括外圍裝置.可以進行處理器工作模式切換,程式的切換。使用者態 只能受限的訪問記憶體,且不允許訪問外圍裝置,不可以進行處理器模式切換。為什麼分使用者態和核心態...
linux的使用者態程式棧的跟蹤方法
將下面的 儲存為main.c檔案,然後用gcc編譯 include include include obtain a backtrace and print it to stdout.void print trace void a dummy function to make the backtra...