1. 程式人生 > 其它 >如何查詢並簡單分析core檔案

如何查詢並簡單分析core檔案

當系統發生coredump時,通常需要通過分析core檔案來定位問題所在,但實際工作中,有時卻發現core 檔案找不到,或者core檔案被刪除了。

一、core檔案沒有生成

KINGBASE core 檔案通常是在 $KINGBASE_DATA目錄下。core檔案沒有生成的原因主要有儲存空間不夠、目錄沒有許可權、limit設定太小。可以通過ulimit -c 檢視limit限制大小。

[root@dbhost01 security]# ulimit -c
unlimited

如果要修改limit,可以修改/etc/security/limits.conf 檔案,如:

* soft core unlimited
* hard core unlimited

二、Redhat7 core檔案

Redhat7 使用abrtd (automatically bug report daemon )服務,core 檔案會在/var/spool/abrt/ccpp* 目錄下。預設非root使用者生成core會被系統自動刪除,在messages 日誌檔案中通常有如下資訊:

abrt-server: Deleting problem directory '/var/spool/abrt/ccpp-xxxxx'

要保留core 不被刪除,需要修改/etc/abrt/abrt-action-save-package-data.conf 檔案,並重啟abrtd服務。

OpenGPGCheck = no
ProcessUnpackaged = yes  

ProcessUnpackaged = yes ,我們自己寫的可執行程式,一般就是拷過去的,不從屬於任何的package(rpm),abrt不生效。為了保證core檔案大小,還要修改/etc/abrt/abrt.conf

# Max size for crash storage [MiB] or 0 for unlimited
#
MaxCrashReportsSize = 1000

三、如何簡單分析core檔案

1、確認core檔案是哪個程式生成的

2、使用gdb分析core檔案

KINGBASE研究院