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。
 

Linux开启产生coredump文件_Mr_慕白的博客-CSDN博客

以上是关于go 程序生成 coredump 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何生成coredump文件

coredump导出堆内存

为啥这里没有生成 Coredump 文件?

从零开始学习MySQL调试跟踪

linux 程序崩溃 gdb调试coredump文件

gdb调试coredump文件