go 程序生成 coredump 文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go 程序生成 coredump 文件相关的知识,希望对你有一定的参考价值。
参考技术A 如果需要针对当前用户一直生效,那么需要在 ~/.bash_profile 追加:如果需要针对所有用户生效,那么需要在 /etc/profile 追加:
然后再对应执行 source ~/.bash_profile 或者 source /etc/profile
测试:
编译运行,然后键盘敲 Ctrl + \,会发现当前目录生成了core文件。
在 /proc/sys/kernel/core_pattern 可以设置格式化的core文件保存位置和文件名。
比如: core-%e-%p-%t 表示在当前目录生成 "core-命令-pid-时间戳" 为文件名的core文件
比如: /cfg/core-%e-%p-%t 表示在/cfg下生成 "core-命令-pid-时间戳" 为文件名的core文件
注意: /proc/sys/kernel/core_pattern 不能直接编辑,可以用 echo core-%e-%p-%t > /proc/sys/kernel/core_pattern
程序崩溃调试 Linux开启产生coredump文件
在Linux上只要打开core dump文件开关,当程序crash时系统生成相应的core文件。
查看当前是否已经打开了此开关
输入命令:ulimit -c
如果输出为 0 ,则代表没有打开;
如果为unlimited则已经打开。
[root@localhost ~]# ulimit -c
0
打开coredump
输入命令:ulimit -c unlimited
取消coredump
输入命令:ulimit -c 0
配置自动打开
通过上面的命令修改后,一般都只是对当前会话起作用,当你下次重新登录后,还是要重新输入上面的命令。我们可以把通过修改 /etc/profile文件 来使系统每次自动打开。在 /etc/profile中添加ulimit -c unlimited。
coredump文件生成位置
默认位置与可执行程序在同一目录下,文件名是core.xxx,其中xxx是一个数字。core dump文件名的模式保存在/proc/sys/kernel/core_pattern中,缺省值是core。
通过以下命令可以更改core dump文件的位置(如希望生成到/tmp/cores目录下);
echo “/tmp/cores/core” > /proc/sys/kernel/core_pattern。
以上是关于go 程序生成 coredump 文件的主要内容,如果未能解决你的问题,请参考以下文章