设置linux生成core文件:ulimit -c unlimited
设置go生成core文件:export GOTRACEBACK=crash
这里比c++程序多了一个步骤
安装dlv
可以参考这个链接
写一个会崩的程序:
var mapTest map[int]int
mapTest[1] = 1
分析core文件,命令格式 dlv core 程序文件名 core文件名
例:
dlv core test_go_main core.26701
进入dlv
用help查看各种命令
运行goroutine命令
即可看到发生错误的程序位置
如下