成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux下發生段錯誤時如何產生core文件

系統 Linux
Linux下的C程序常常會因為內存訪問錯誤等原因造成segment fault(段錯誤),此時如果系統core dump功能是打開的,那么將會有內存映像轉儲到硬盤上來,之后可以用gdb對core文件進行分析,還原系統發生段錯誤時刻的堆棧情況。這對于我們發現程序bug很有幫助。

Linux下的C程序常常會因為內存訪問錯誤等原因造成segment fault(段錯誤),此時如果系統core dump功能是打開的,那么將會有內存映像轉儲到硬盤上來,之后可以用gdb對core文件進行分析,還原系統發生段錯誤時刻的堆棧情況。這對于我們發現程序bug很有幫助。

使用ulimit -a可以查看系統core文件的大小限制;使用ulimit -c [kbytes]可以設置系統允許生成的core文件大小,例如

ulimit -c 0 不產生core文件

ulimit -c 100 設置core文件***為100k

ulimit -c unlimited 不限制core文件大小

先看一段會造成段錯誤的程序:

#include <stdio.h>

int main()

{

char *ptr="linuxers.cn";

*ptr=0;

}

編譯運行后結果如下:

[leconte@localhost test]$ gcc -g -o test a.c

[leconte@localhost test]$ ./test

段錯誤

此時并沒有產生core文件,接下來使用ulimit -c設置core文件大小為無限制,再執行./test程序,結果如下:

[leconte@localhost ~]$ ulimit -a

core file size          (blocks, -c) 0

[leconte@localhost test]$ ulimit -c unlimited

[leconte@localhost test]$ ulimit -a

core file size          (blocks, -c) unlimited

[leconte@localhost test]$ ./test

段錯誤 (core dumped)

[leconte@localhost test]$ ls -al core.*

-rw------- 1 leconte leconte 139264 01-06 22:31 core.2065

可見core文件已經生成,接下來可以用gdb分析,查看堆棧情況:

[leconte@localhost test]$ gdb ./test core.2065

GNU gdb Fedora (6.8-27.el5)

Copyright (C) 2008 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 "i386-redhat-linux-gnu"...

warning: exec file is newer than core file.

warning: Can't read pathname for load map: Input/output error.

Reading symbols from /lib/libc.so.6...done.

Loaded symbols for /lib/libc.so.6

Reading symbols from /lib/ld-linux.so.2...done.

Loaded symbols for /lib/ld-linux.so.2

Core was generated by `./test'.

Program terminated with signal 11, Segmentation fault.

[New process 2065]

#0  0x0804836f in main () at a.c:6

6           *ptr=0;

從上述輸出可以清楚的看到,段錯誤出現在a.c的第6行,問題已經清晰地定位到了。

很多系統默認的core文件大小都是0,我們可以通過在shell的啟動腳本/etc/bashrc或者~/.bashrc等地方來加入 ulimit -c 命令來指定core文件大小,從而確保core文件能夠生成。

除此之外,還可以在/proc/sys/kernel/core_pattern里設置core文件的文件名模板,詳情請看core的官方man手冊。
 

【編輯推薦】

  1. 安裝Fedora Core 4配置文件--Linux系統
  2. 講解介紹Fedora Core 3安裝相關的問題
  3. Fedora Core 3系統硬件要求與軟件說明
責任編輯:趙寧寧 來源: chinaitlab
相關推薦

2021-09-14 07:26:25

雪花算法ID

2020-09-24 09:43:59

Http協議options請求

2018-07-16 08:40:08

Linux段錯誤C++

2010-06-01 15:58:14

SVN錯誤

2019-03-04 11:11:53

CPU調試程序MIPS

2019-03-04 14:40:46

Linux文件系統修復

2016-12-13 15:18:02

代碼

2024-05-31 12:54:37

.NET CoreLinux語言

2021-07-14 07:55:47

Linux CPULinux 系統

2022-08-14 19:27:16

LinuxmacOS

2010-01-12 16:53:23

Fedora Core

2021-04-12 10:57:28

區塊鏈信任銀行

2011-06-16 17:05:54

CSS

2011-03-21 15:25:52

MySQL系統錯誤

2022-09-16 15:10:12

模型AI

2019-01-21 09:55:25

LinuxNET Core SD命令

2009-12-21 09:17:44

Tiny Core L版本發布

2011-02-15 09:19:47

Tiny CoreLinux 3.5

2021-01-18 14:04:49

java監控操作

2022-11-07 12:52:25

Linuxfsck命令
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人a视频 | 在线午夜| 一区久久 | 国产成人一区二区三区 | 情侣酒店偷拍一区二区在线播放 | 在线亚洲免费 | 欧美黄色绿像 | 精品国产乱码久久久久久88av | 亚洲图片一区二区三区 | 2018国产精品 | 日本一区二区在线视频 | 国产精品视频一 | 国产精品69毛片高清亚洲 | 亚洲综合色视频在线观看 | 中文字幕 在线观看 | 四季久久免费一区二区三区四区 | 亚洲精品国产成人 | 亚洲成人中文字幕 | 中文一区二区视频 | 日本精品久久久久久久 | 日本久久久久久 | 日韩国产中文字幕 | 丁香一区二区 | 精品国产亚洲一区二区三区大结局 | 欧美日韩一区在线观看 | 欧美区日韩区 | 天天干天天爽 | 一区二区三区免费在线观看 | 久久中文字幕一区 | 青春草在线 | www.788.com色淫免费 | 五月天婷婷丁香 | 91九色porny首页最多播放 | 蜜臀网| 日韩成人精品一区 | 日韩综合一区 | 久久久久久久国产精品影院 | 黄视频免费观看 | 国产999精品久久久久久绿帽 | 在线日韩| 欧日韩在线 |