core dump[打开及调试]
来源:互联网 发布:java else 编辑:程序博客网 时间:2024/06/07 00:01
本文系统为centos6.5(vmware中)
1. 开启或关闭core文件的生成
用以下命令来阻止系统生成core文件:
ulimit -c 0
下面的命令可以检查生成core文件的选项是否打开:
ulimit -a
该命令将显示所有的用户定制,其中选项-a代表“all”。
也可以修改系统文件来调整core选项
在/etc/profile通常会有这样一句话来禁止产生core文件,通常这种设置是合理的:
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
但是在开发过程中有时为了调试问题,还是需要在特定的用户环境下打开core文件产生的设置
在用户的~/.bash_profile里加上ulimit -c unlimited来让特定的用户可以产生core文件
如果ulimit -c 0 则也是禁止产生core文件,而ulimit -c 1024则限制产生的core文件的大小不能超过1024kb
2.设置Core Dump的核心转储文件目录和命名规则
/proc/sys/kernel/core_uses_pid可以控制产生的core文件的文件名中是否添加pid作为扩展,如果添加则文件内容为1,否则为0
/proc/sys/kernel/core_pattern可以设置格式化的core文件保存位置或文件名,比如原来文件内容是core-%e
可以这样修改:
echo "/corefile/core-%e-%p-%t" > /proc/sys/kernel/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 添加命令名
具体操作如下:
[root@root soft_spc]# cd
[root@root ~]# mkdir -p /home/data/corefile
[root@root ~]# chmod 777 /home/data/corefile[root@root ~]# echo "ulimit -S -c unlimited > /dev/null 2>&1" >> /etc/profile
[root@root ~]# source /etc/profile
[root@root ~]# echo "1" > /proc/sys/kernel/core_uses_pid
[root@root ~]# echo "/home/data/corefile/core-%e-%p_%t" > /proc/sys/kernel/core_pattern
[root@root ~]# echo "1" > /proc/sys/fs/suid_dumpable
[root@root ~]#
3.测试
先编译将cpp文件编译、链接成能运行的文件(此步骤要 -g,方便后面的调试),比如main,输入 ./main运行,若的段错误,则会生成一个core dump文件,按照前文的设置办法,此文保留在/home/data/corefile目录下,我们打开此目录,
可以看到生成的core-main文件,在执行./main的黑框中,输入gdb ./main /home/data/core/
core-main-24444_1503018001, 最后面这个参数为core dump文件的绝对路径+文件名。此时就能看到具体的段错误原因了。。。。
- core dump[打开及调试]
- Linux core dump文件介绍及调试
- Linux core dump 分析及相关调试
- 调试 core dump 文件
- 开启Core dump调试
- core dump 调试程序
- Core Dump调试 /Z
- Linux core dump调试
- php 调试 core dump
- core dump调试
- core dump调试
- linux下生成core dump文件及调试
- linux下生成core dump文件调试方法及设置
- core dump及应用
- Linux 下打开 Core Dump
- Linux 下打开 Core Dump
- core dump 生成与调试
- Linux 调试 core dump文件
- 数据结构实验之排序六:希尔排序
- samba服务器简介以及常用命令
- NYOJ 325 zb的生日(01背包)
- 线程并发和并行的区别以及记忆方法
- camel+activemq入门整合
- core dump[打开及调试]
- Errors occurred during the build. Errors running builder 'DeploymentBuilder' on project...
- 我们可曾这么认真过?
- javaweb学习总结(三十九)——数据库连接池
- Python快速入门3--函数式编程
- jstree源码解读
- 正则表达式实战
- 压缩目录,排除多个子目录
- 1.css介绍及选择器