![1f0f35b16c139550110d524eef70283c.png](https://i-blog.csdnimg.cn/blog_migrate/b8e135681ac585c6d3dae0091addebb6.jpeg)
ℹ️ 本文基于Go Delve 1.4.1
core dump(核心转储)是包含程序内存意外终止快照的文件。它用于事后调试以了解崩溃原因和其中涉及的变量。Go提供了环境变量GOTRACEBACK
用于控制程序崩溃时生成的输出。此变量还可以强制生成core dump,从而可以进行调试。
GOTRACEBACK
GOTRACEBACK
控制程序崩溃时输出的详细程度。它可以采用不同的值:
none
不显示任何goroutine栈trace。single
, 默认选项,显示当前goroutine栈trace。all
显示所有用户创建的goroutine栈trace。system
显示所有goroutine栈trace,甚至运行时的trace。crash
类似system
, 而且还会生成 core dump。
最后一个选项使我们能够在发生崩溃的情况下调试程序。如果没有足够的日志,或者崩溃无法重现,这可能是一个不错的选择。让我们以以下程序为例: