Linux下core文件及使用

core文件的作用:

    当程序崩溃时,内核有可能把该程序当前内存映射到core文件中,方便程序员找到程序出现问题的地方,最常出现的,几乎所有C程序员都出现过的“段错误”了。也是最难查出问题原因的一个错误

core文件是什么:

    核心文件(core file),也称为核心转存(core dump),是操作系统在进程收到某些信号而终止运行时,将此时进程地址空间的内容以及有关进程状态的其他信息写出的一个磁盘文件。这种信息往往用于调试

core文件相关的操作:

    1.查看core文件开关,ulimit -a,如果core file size为0,则说明core file产生还没打开

    2.ulimit -c 1024(1024是core文件的大小),将core文件打开并给一个文件的大小

    3.此时再次出现段错误则会产生core文件

    4.cat /proc/sys/kernel/core_uses_pid查看生成的core文件是否添加pid作为扩展

            如果为0,说明生成的core文件就是core文件

            如果为1,说明生成的core文件格式为core.xxxx;

            可以通过修改这个文件中的值来修改生成的core文件的名称

            也可以通过命令:echo "1" > /proc/sys/kernel/core_uses_pid来修改值

    5.cat /proc/sys/kernel/core_pattern,可以查看core文件保存的位置和文件名格式

            可以通过命令:echo "/corefile/core-%e-%p-%t" > core_pattern,可以将core文件统一生成到/corefile目录下,产生的文件名为core-命令名-pid-时间戳

             以下是参数列表:

                    %p-添加pid

                    %u-添加当前uid

                    %g-添加当前gid

                    %s-添加导致产生core的信号

                    %t-添加core文件生成时的unix时间

                    %h-添加主机名

                    %e-添加命令名

core文件的查看:

    core文件需要使用gdb查看。

        方式1:

                gdb ./a.out

                core-file core.xxxx(core.xxxx就是core文件名)

                使用bt命令即可看到程序出错的地方

        方式2:

                gdb -core=core.xxxx(core.xxxx就是core文件名)

                file ./a.out

                bt

         方式3:

                gdb -c core.xxxx(core.xxxx就是core文件名)

                file ./a.out

                bt

方式2、3两种命令的效果相同,但是有些环境下不生效,所以推荐使用方式1

            

                gdb -core=core.xxxx(core.xxxx就是core文件名)

                file ./a.out

                bt

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值