Exploring Go core dumps
Sometimes when you debug a program, you need to examine the code execution flow and understand the current state of a program. Go core dump is a file that contains the memory dump of running processes and their status during the life of a program. You can debug core dumps when the program finished its execution or while it is still running.
Create a Go core dump file on Linux
Open a terminal in the directory with the file .
Set the
ulimit
parameter tounlimited
:ulimit -c unlimited
.Build the program by running
go build .
in the terminal. Thebuild
command creates a binary file in the current project folder (for example, awesomeProject).To create a core dump file, run
GOTRACEBACK=crash ./<binary_file_name>
(for example,GOTRACEBACK=crash ./awesomeProject
). This command creates a core file in the current project folder.
View the dump log
Navigate to
.In the Executable field, specify a path to the binary file (for example, awesomeProject).
In the Core Dump field, specify a path to the
core
file (for example, core).Click OK. In the Debug tool window, select a frame that you want to inspect.
View the Go core dump in GoLand
Open or create the Go Build configuration for the Go file.
In the Environment field, click the folder ().
In the Environment Variables dialog, click the Add icon ().
Click the Name field and type
GOTRACEBACK
.Click the Value field and type
crash
.Save all changes and click OK.
Run the program Shift+F10. The output for the program is displayed in the debugger window.