linux下 gdb+coredump 调试偶发crash的程序

Posted 白菜菜白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下 gdb+coredump 调试偶发crash的程序相关的知识,希望对你有一定的参考价值。

1. 打开 core dump

查看是否打开

ulimit -c

 如果输出0, 说明没有打开。

方法一:使用命令

ulimit -c unlimited

 可以打开,但是只对当前终端有效,

方法二: 配置 /etc/profile 文件

sudo gedit /etc/profile

 在最后添加一行

ulimit -S -c unlimited > /dev/null 2>&1

 可以始终打开core dump , unlimited 可以改为具体的数字,比方说 1024 来限制 core 文件的大小。

然后在 bashrc 文件里面 source /etc/profile 就可以使每个终端运行的程序 启动 core dump 了.

2. 设置core文件的路径和名字

生成的core file在哪里?
core file生成的地方是在/proc/sys/kernel/core_pattern文件定义的。
改动到生成到自己定义的目录的方法是:

echo "pattern" > /proc/sys/kernel/core_pattern

并且只有超级用户可以修改这两个文件。
"pattern"类似我们C语言打印字符串的格式,相关标识如下:
%%: 相当于%
%p: 相当于
%u: 相当于
%g: 相当于
%s: 相当于导致dump的信号的数字
%t: 相当于dump的时间
%h: 相当于hostname
%e: 相当于执行文件的名称
这时用如下命令设置生成的core file到系统/tmp目录下,并记录pid以及执行文件名
echo "/tmp/core-%e-%p" > proc/sys/kernel/core_pattern


















以上是关于linux下 gdb+coredump 调试偶发crash的程序的主要内容,如果未能解决你的问题,请参考以下文章

linux 程序崩溃 gdb调试coredump文件

gdb调试coredump文件

linux禁止gdb调试

GDB 调试Coredump问题

全志 Tina Linux 系统调试 使用指南 GDB gdbserver coredump perf strace valgind

全志 Tina Linux 系统调试 使用指南 GDB gdbserver coredump perf strace valgind