1.core文件的生成开关和大小限制

使用ulimit
-c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。
-c filesize命令,可以限制core文件的大小(filesize的单位为kbyte)。若ulimit
-c unlimited,则表示core文件的大小不受限制。如果生成的信息超过此大小,将会被裁剪,最终生成一个不完整的core文件。在调试此core文件的时候,gdb会提示错误。

2.core文件的名称和生成路径
若系统生成的core文件不带其它任何扩展名称,则全部命名为core。新的core文件生成将覆盖原来的core文件。
(1)/proc/sys/kernel/core_uses_pid可以控制core文件的文件名中是否添加pid作为扩展。文件内容为1,表示添加pid作为扩展名,生成的core文件格式为core.xxxx;为0则表示生成的core文件同一命名为core。
可通过以下命令修改此文件:

echo
"1" >
/proc/sys/kernel/core_uses_pid

(2)proc/sys/kernel/core_pattern可以控制core文件保存位置和文件名格式。
可通过以下命令修改此文件:

echo
"/corefile/core-%e-%p-%t" >

core_pattern,可以将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳
以下是参数列表:

%p - insert pid into filename 添加pid%u - insert current uid into filename 添加当前uid%g - insert current gid into filename 添加当前gid%s - insert signal that caused the coredump into the filename
添加导致产生core的信号%t - insert UNIX time that the coredump occurred into filename
添加core文件生成时的unix时间%h - insert hostname where the coredump happened into filename
添加主机名%e - insert coredumping executable name into filename
添加命令名

3.用gdb查看core文件
发生coredump之后,用gdb进行查看core文件的内容,以定位文件中引发coredump的行.

gdb [execfile] [core file]

如:

gdb ./test core.22773
gdb core_dump_test core.22773

在进入gdb后,
bt 命令查看backtrace(调用栈)以检查发生程序运行到哪里,来定位core dump的文件行.

就会得到类似于下面的信息:

#0  0x0804c760 in thread _handler () at test.cpp:707
#1  0x006b149b in start_thread () from /lib/libpthread.so.0
#2  0x0060842e in clone () from /lib/libc.so.6

于是,我们一眼就看出来了:程序是在第707行使用指针时出的问题。

查看和调试core文件相关推荐

  1. 如何设置、查看以及调试core文件

    1.core文件的生成开关和大小限制 --------------------------------- 1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不 ...

  2. g-gdb调试core文件

    文章目录 core文件 判读是否为core文件 打开系统 core dump 修改core文件的保存路径 gdb调试core文件 最近初步了解了一下core 文件,已经如何将gdb工具与core文件结 ...

  3. 解决gdb 调试 core 文件函数名显示为问号的问题

    关于gdb调试core文件总是一堆问号的问题 问题描述:已经在编译选项中加入了-g,但是查看core文件时,还是一堆问号,使用的命令为:gdb -c core 解决方案:由于gdb -c core这样 ...

  4. coredump gdb 调试_Linux下如何使用gdb调试core文件

    1.core文件 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件.core文件是程序运行状态的内存映象.使用gdb调试co ...

  5. Linux 下使用 gdb 调试 core 文件

    1.core文件 当程序运行过程中出现段错误(Segmentation Fault),程序将停止运行,由操作系统把程序当前的内存状况存储在一个 core 文件中,即核心转储文件(Coredump Fi ...

  6. gdb 笔记(02)— gdb 调试执行(启动调试、添加参数、附加到进程、调试 core 文件)

    在编译程序时,使用 gcc 或者 g++ 时一定要加上 -g 选项,如 gcc -g -o hello hello.c 以便调试程序含有调试符号信息,从而能够正常调试程序.否则则会出现如下提示,导致不 ...

  7. C++(Qt)软件调试---linux下生成/调试Core文件(3)

    #软件调试 C++(Qt)软件调试-linux下生成/调试Core文件(3) 文章目录 C++(Qt)软件调试---linux下生成/调试Core文件(3) 前言 1.C++生成Core和使用GDB调 ...

  8. 用gdb调试core文件

    GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成 ...

  9. GDB调试core文件样例(如何定位Segment fault)

    core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIG ...

最新文章

  1. CISCO设备部分型号IOS下载
  2. 为什么我的会话状态在ASP.NET Core中不工作了?
  3. 简单参数让谷歌Chrome浏览器单进程运行
  4. PyPI可以使用的几个国内源
  5. Warning:mailcious javascript detected on this domain来由
  6. 快逸报表研究-冻结表头
  7. 你想要的宏基因组-微生物组知识全在这(2020.03)
  8. 毕业设计 - 题目: 基于协同过滤的电影推荐系统 - Django 在线电影推荐协同过滤
  9. Himall商城普通帮助类(四)
  10. WinRAR 4.0 简体中文正式版美化版下载 (包含32位与64位)
  11. 前端删除表格某一行信息怎么实现
  12. windows 远程桌面连接(mstsc)删除下拉框的记录
  13. 弹出框插件bootbox
  14. 十六进制转float
  15. 计算机外存是ram硬盘还是,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
  16. IAR Error[Pe020]: identifier 'FILE' is undefined 解决方法
  17. 国内android应用商城中程序隐私泄露分析,基于数据生命周期的Android应用程序隐私泄露分析技术研究...
  18. JSTL标签不起作用,JSTL标签直接输出表达式
  19. 建立合格的跨职能团队,你需要知道这些
  20. 职业生涯规划访谈,写给在校的你们

热门文章

  1. python控制键盘按键_如何通过Python生成键盘按键事件来控制PP的表示?
  2. java中pl是什么意思,英语中pl是什么意思
  3. AT24C02 能读不能写的问题
  4. 在Termux中安装Kali教程
  5. 流程控制语句------顺序结构(一)
  6. 求建议:二本计算机专业,考研还是就业做开发?
  7. office图标不能正常显示
  8. 为什么要用并发编程?
  9. JR/T 0223—2021 金融数据安全 数据生命周期安全规范
  10. linux常用指令汇总