首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 程式 Core Dump 產生與 GDB 分析實戰指南

     編輯:關於C語言

核心要點

  • 程式異常終止會產生 core dump 檔案。
  • 編譯時加入 -g 選項包含除錯資訊。
  • 結合 GDB 與 core dump 定位異常點。

示例:除零異常

#include <stdio.h>
int core_dump() {
    int i;
    for (i = 5; i >= 0; i--) {
        printf("(%d, %d)\n", i, 100 / i);
    }
    return 0;
}
int main() {
    core_dump();
    return 0;
}

編譯與運行

gcc -g main.c
./a.out

輸出:

(5, 20)
(4, 25)
(3, 33)
(2, 50)
(1, 100)
[1] 9662 floating point exception (core dumped) ./a.out

GDB 分析 Core Dump

gdb ./a.out core
# 輸出關鍵資訊:
#0 0x08048415 in core_dump () at main.c:7
#1 0x0804844b in main () at main.c:14

加上 -g 後可顯示具體檔案名與行號。若系統預設 core 檔案大小為 0,需執行 ulimit -c 1024 設定允許大小。

補充

並非所有異常都會產生 core dump,具體參考《Unix 環境高級程式設計》第十章 信號。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved