1. 什麼是core dump?
core dump說的是操作系統執行的一個動作,當某個進程因爲一些原因意外終止(crash)的時候,操作系統會將這個進程當時的內存信息轉儲(dump)到磁盤上,產生的文件就是core文件了,一般會以core.xxx形式命名。
2. 那些信號能夠引起core dump?
經常用到的主要有這幾種:
SIGSEGV 建立CORE文件 段非法錯誤
SIGILL 建立CORE文件 非法指令
SIGTRAP 建立CORE文件 跟蹤自陷
SIGBUS 建立CORE文件 總線錯誤
SIGFPE 建立CORE文件 浮點異常
SIGIOT 建立CORE文件 執行I/O自陷
具體的那些信號能產生core,可以在終端執行命令“man 7 signal”查看。
3. 設置生成core文件的環境
ulimit -c :查看core文件的大小的限制
ulimit -c unlimited :設置core文件的大小爲不限制
4. 調試core文件的相關命令
4.1 啓動命令:gdb exe_name core_name
4.2 具體的調試命令:
where : 同bt
frame num :查看堆棧中第num個frame的信息,frame可以簡寫成f
focus num :查看堆棧中第num個frame的具體代碼信息,focus可以簡寫成foc。
5.查看變量
f n n是一個從0開始的整數,是棧中的層編號。比如:frame 0,表示棧頂,frame 1,表示棧的第二層。
p locl 查看局部變量locl 的值