1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      Linux C 讓程序崩潰后生成Core Dump

      更新時間: 2011-12-30 14:51:43來源: 粵嵌教育瀏覽量:3569

      在Linux下,程序崩潰是很頭疼的事情(其實Windows更是如此)。

      我們可以生成core dump文件,并用gdb重現崩潰時的場景。

      ulimit設置core dump開關和大小

      #四號程序員,
      1
      ulimit -c unlimited

      測試代碼:

      #四號程序員, http://www.coder4.com
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      #include <stdio.h>
        
      int main(int argc, char* argv[])
      {
          char * p = NULL;
        
          *p = 123;
        
          return 0;
      }

      編譯:

      #四號程序員, http://www.coder4.com
      1
      2
      gcc -g
       ./main.c -o ./main.bin

      執行,提示出錯:

      #四號程序員, http://www.coder4.com
      1
      2
      ./main.bin
      段錯誤 (core dumped)

      用gdb調試復原:

      #四號程序員, http://www.coder4.com
      1
      gdb ./main.bin --core=./core

      gbd信息:

      #四號程序員, http://www.coder4.com
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      GNU gdb (GDB) 7.1-ubuntu
      Copyright (C) 2010 Free Software Foundation, Inc.
      License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
      This is free software: you are free to change and redistribute it.
      There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
      and "show warranty" for details.
      This GDB was configured as "i486-linux-gnu".
      For bug reporting instructions, please see:
      <http://www.gnu.org/software/gdb/bugs/>...
      Reading symbols from /tmp/main.bin...done.
      [New Thread 18055]
        
      warning: Can't read pathname for load map: 輸入/輸出錯誤.
      Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging symbols found)...done.
      Loaded symbols for /lib/tls/i686/cmov/libc.so.6
      Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
      Loaded symbols for /lib/ld-linux.so.2
      Core was generated by `./main.bin'.
      Program terminated with signal 11, Segmentation fault.
      #0  0x080483c4 in main (argc=1, argv=0xbfbbafa4) at ./main.c:8
      8       *p = 123;

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 亚洲欧美乱综合图片区小说区 | 日韩二区三区久久久 | 思思re久久精品66在热线热 | 亚洲一区二区中文欧美 | 精品国产亚洲最大 | 亚洲中文字幕精品久久久久久直播 |