Golang 程序 crash 的时候自动 core dump
💡
原文中文,约4000字,阅读约需10分钟。
📝
内容提要
介绍golang程序崩溃时生成core dump文件的方法,详细介绍GOTRACEBACK环境变量的可选值,以及在Linux上使用ulimit限制core dump大小的方法。还提到在Ubuntu上关闭或配置apport以写入用户core dump文件,以及解包apport打包的debug文件和core dump文件的存放位置。
🎯
关键要点
- 介绍了在golang程序崩溃时生成core dump文件的方法。
- 通过设置GOTRACEBACK环境变量来控制崩溃时的堆栈跟踪信息。
- GOTRACEBACK的可选值包括none、single、all、system和crash。
- 在Linux上使用ulimit命令限制core dump的大小,建议设置为50G。
- core dump文件的存放位置可以通过/proc/sys/kernel/core_pattern查看。
- Ubuntu使用apport作为core dump管理服务,默认情况下用户程序不会生成core dump。
- 可以通过修改core_pattern文件或配置apport来解决core dump问题。
- apport的配置文件位于~/.config/apport/settings,需设置unpackaged=true以记录未打包程序的core dump。
- 使用apport-unpack命令可以解包apport生成的debug文件。
- 如果在工作目录下没有生成core dump,可以检查/var/lib/systemd/coredump/目录。
🏷️
标签
➡️