新春签到免费送会员,每天签到一次,送一天会员,活动截止时间不定,随时终止!机会不要错过哦!
首页  >   经验  >   Linux使用coredump文件调试系列:1 设置生成coredump文件

Linux使用coredump文件调试系列:1 设置生成coredump文件

codexia 2018-12-05 16:45:38 342 会员文章,禁止转载
coredump  
简介coredump调试是Linux系统的一个非常有用的调试工具。在上线之后的程序运行过程中,我们无法实时调试,程序一旦崩溃,我们很难知道是什么问题引起的,而coredump就为了准备好了崩溃时候的情况,供我们调试使用。

    coredump调试是Linux系统的一个非常有用的调试工具。在上线之后的程序运行过程中,我们无法实时调试,程序一旦崩溃,我们很难知道是什么问题引起的,而coredump就为了准备好了崩溃时候的情况,供我们调试使用。

    那么coredump是什么呢?coredump是一个程序运行时的环境的一个集合,包含了崩溃时的堆栈信息。这个文件是二进制文件,无法用记事本打开。对于这么高大上的技术,其实我开始是拒绝的。后来尝试过一次,发现整了几圈,没有整成功。因为开发时VS可以实时调试,所以也降低了研究这个技术的需求。是的,你没有猜错,我是用VS在写Linux程序,当然也包括了用VS调试Linux程序咯。准确来说,我是使用VS2017在写Linux程序以及调试。有兴趣的朋友,可以阅读《VS2017开发Linux项目的过程:从创建项目到调试运行全程指导》。

    那为什么我现在又要研究coredump技术了呢?因为需要!VS2017开发时候调试非常好用,就和Windows本地程序开发一样,非常方便。可能这是原生Linux程序员没有体会过的吧。哈哈哈。为什么需要呢?程序写好了,放在服务器上运行了。然而不知道什么原因,就突然崩溃了。这种问题往往没有办法直接复现,所以非常的难受。就好像是你感觉身上有一个地方很痒,但是抓哪里都抓不到的样子。如果知道是某种情况下能复现,VS2017还是非常不错的选择的。

    既然如此,只能退而求其次,我们只能借助coredump技术来事后调试,只要能解决问题,难一点也是愿意的。所以借此机会,将这一方面的内容总结分享一下。

    默认情况下,一般Linux系统会关闭coredump文件的生成的,毕竟是要占用一定的系统开销的。所以我们要想办法开启这个黑科技。在开启之前,我们要先确认一下我们的系统是否已经开启了。

1.确认系统是否开启coredump

输入命令:ulimit -a 或 ulimit -c

在返回的结果里,前者如:

core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 15245
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65535
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 15245
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

后者直接显示:

unlimited

    或是一个数字

    这样就表明是已经开启了的。如果没有开启,前面返回的结果的第一行和后者返回的结果都是0.

2.没有开启coredump,这一步来开启coredump

    如果是临时开启一下coredump,执行一下命令:

ulimit -c unlimited

    这样就可以了。但是退出登录或者系统重启后,这个设置就会失效。所以我们一般长期需要,自然要长期设置,也就是要将设置写入到配置文件里。

    对于修改配置文件,我们就采用最简单的方式了,直接写成脚本,然后自己执行

开通会员,查看全部
收藏 0 点赞 0

相关阅读

  1. Linux使用coredump文件调试系列:4 加载不出来调试信息的问题解决办法
  2. Linux使用coredump文件调试系列:3 使用GDB调试coredump
  3. Linux使用coredump文件调试系列:2 编译可产生coredump文件的程序并测试
  4. Linux使用coredump文件调试系列:1 设置生成coredump文件
  5. 详解coredump-通过core文件来定位bug位置
  6. 教你如何解决VS2015的30天试用期已过即VS2015许可证已过期的问题
  7. Linux源码笔记——感觉写的巧妙的代码
  8. 在Win7上安装VS2015 RC(候选发布版)失败完美解决方法
  9. 完全图解VS2017安装过程并演示VS2017创建Linux项目和调试
  10. VS2015入门必备介绍,扫扫盲吧
分享到:
分享文章[Linux使用coredump文件调试系列:1 设置生成coredump文件]到QQ空间

相关阅读