查看和调试core文件
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文件相关推荐
- 如何设置、查看以及调试core文件
1.core文件的生成开关和大小限制 --------------------------------- 1)使用ulimit -c命令可查看core文件的生成开关.若结果为0,则表示关闭了此功能,不 ...
- g-gdb调试core文件
文章目录 core文件 判读是否为core文件 打开系统 core dump 修改core文件的保存路径 gdb调试core文件 最近初步了解了一下core 文件,已经如何将gdb工具与core文件结 ...
- 解决gdb 调试 core 文件函数名显示为问号的问题
关于gdb调试core文件总是一堆问号的问题 问题描述:已经在编译选项中加入了-g,但是查看core文件时,还是一堆问号,使用的命令为:gdb -c core 解决方案:由于gdb -c core这样 ...
- coredump gdb 调试_Linux下如何使用gdb调试core文件
1.core文件 当程序运行过程中出现Segmentation fault (core dumped)错误时,程序停止运行,并产生core文件.core文件是程序运行状态的内存映象.使用gdb调试co ...
- Linux 下使用 gdb 调试 core 文件
1.core文件 当程序运行过程中出现段错误(Segmentation Fault),程序将停止运行,由操作系统把程序当前的内存状况存储在一个 core 文件中,即核心转储文件(Coredump Fi ...
- gdb 笔记(02)— gdb 调试执行(启动调试、添加参数、附加到进程、调试 core 文件)
在编译程序时,使用 gcc 或者 g++ 时一定要加上 -g 选项,如 gcc -g -o hello hello.c 以便调试程序含有调试符号信息,从而能够正常调试程序.否则则会出现如下提示,导致不 ...
- C++(Qt)软件调试---linux下生成/调试Core文件(3)
#软件调试 C++(Qt)软件调试-linux下生成/调试Core文件(3) 文章目录 C++(Qt)软件调试---linux下生成/调试Core文件(3) 前言 1.C++生成Core和使用GDB调 ...
- 用gdb调试core文件
GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成 ...
- GDB调试core文件样例(如何定位Segment fault)
core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存储在一个core文件中, 叫core dump. (Linux中如果内存越界会收到SIG ...
最新文章
- CISCO设备部分型号IOS下载
- 为什么我的会话状态在ASP.NET Core中不工作了?
- 简单参数让谷歌Chrome浏览器单进程运行
- PyPI可以使用的几个国内源
- Warning:mailcious javascript detected on this domain来由
- 快逸报表研究-冻结表头
- 你想要的宏基因组-微生物组知识全在这(2020.03)
- 毕业设计 - 题目: 基于协同过滤的电影推荐系统 - Django 在线电影推荐协同过滤
- Himall商城普通帮助类(四)
- WinRAR 4.0 简体中文正式版美化版下载 (包含32位与64位)
- 前端删除表格某一行信息怎么实现
- windows 远程桌面连接(mstsc)删除下拉框的记录
- 弹出框插件bootbox
- 十六进制转float
- 计算机外存是ram硬盘还是,都是存储器,但RAM、ROM、闪存、硬盘怎么分?
- IAR Error[Pe020]: identifier 'FILE' is undefined 解决方法
- 国内android应用商城中程序隐私泄露分析,基于数据生命周期的Android应用程序隐私泄露分析技术研究...
- JSTL标签不起作用,JSTL标签直接输出表达式
- 建立合格的跨职能团队,你需要知道这些
- 职业生涯规划访谈,写给在校的你们