GoLand崩溃日志默认不保存,需手动配置JVM参数启用hs_err_.log生成,并调整idea.log轮转策略;路径为~/.cache/JetBrains/GoLand2026.1/log/idea.log(Linux/macOS)或%LOCALAPPDATA%\JetBrains\GoLand2026.1\log\idea.log(Windows),崩溃瞬间堆栈仅存于hs_err_.log中。

GoLand 崩溃时默认不保存日志,必须手动开启「崩溃日志自动导出」,否则遇到闪退、卡死、IDE无响应等问题,连 idea.log 都可能被覆盖或丢失。
崩溃日志在哪?为什么重启后就没了
GoLand 的运行日志默认存在用户目录下,路径为:$USER_HOME/.cache/JetBrains/GoLand2026.1/log/idea.log(Linux/macOS)或 %LOCALAPPDATA%\JetBrains\GoLand2026.1\log\idea.log(Windows)。但这个文件是滚动覆盖的——IDE 正常重启时会重命名旧日志为 idea.log.1、idea.log.2 等,而崩溃导致的非正常退出往往来不及归档,直接被新启动覆盖。
- 崩溃瞬间产生的堆栈(如 SIGSEGV、OutOfMemoryError)只存在于
hs_err_pid*.log文件中,该文件由 JVM 生成,但默认不启用 - GoLand 自身的 crash reporter(
crash-reporter进程)仅在极少数预设场景触发上报,且不保留本地副本 - 若未配置 JVM 参数,JVM 不会生成
hs_err_*.log,也就没有底层崩溃上下文
启用 JVM 崩溃日志生成(关键一步)
必须修改 goland.vmoptions,让 JVM 在进程异常终止时自动生成带线程快照、寄存器状态和内存映射的 hs_err_*.log 文件。这步漏掉,后面所有设置都白搭。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
- 找到
goland.vmoptions:Windows 在GoLand2026.1\bin\goland64.exe.vmoptions;macOS 在GoLand.app/Contents/bin/goland.vmoptions;Linux 在GoLand2026.1/bin/goland.vmoptions - 在文件末尾追加两行(注意换行,不要合并成一行):
-XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$USER_HOME/.cache/JetBrains/GoLand2026.1/dumps/ -XX:ErrorFile=$USER_HOME/.cache/JetBrains/GoLand2026.1/crashes/hs_err_%p.log
- 确保
$USER_HOME/.cache/JetBrains/GoLand2026.1/crashes/目录存在且可写(IDE 启动前手动创建更稳妥) - 重启 GoLand,验证是否生效:在终端执行
ps aux | grep "GoLand" | grep "ErrorFile",应能看到-XX:ErrorFile=...参数被加载
配置 IDE 自身日志级别与保留策略
仅靠 JVM 日志不够,还需让 GoLand 主进程记录足够细粒度的操作链路,尤其涉及 Go toolchain 调用、plugin 加载、gopls 通信等易崩溃环节。
- 打开
Help → Diagnostic Tools → Debug Log Settings...,输入以下包名启用高危模块日志:com.jetbrains.go org.jetbrains.plugins.go go.plugin gopls jetbrains.golang
- 在
Help → Diagnostic Tools → Configure Log Level...中,将com.intellij.idea.IdeaLogger设为DEBUG,避免关键错误被WARN级别过滤 - 编辑
idea.properties(同目录下),添加:idea.log.rotation.max.files.count=20 idea.log.rotation.max.file.size.bytes=10485760
(即最多保留 20 个、每个 10MB 的日志轮转文件)
崩溃后如何快速定位根因
拿到 hs_err_*.log 和扩展后的 idea.log 后,别从头翻——聚焦三处:
- 查
hs_err_*.log开头的siginfo:行,确认是SIGSEGV(非法内存访问)还是SIGBUS(对齐错误),前者多见于插件 native 库冲突,后者常见于 Wayland 下图形渲染问题 - 搜
idea.log中的FATAL或java.lang.OutOfMemoryError,配合前后 50 行看是否发生在gopls启动、go mod download或File Watchers执行期间 - 比对崩溃前最后调用的 plugin ID:在
idea.log里搜PluginClassLoader+loadClass,若频繁出现protobuf、grpc、docker相关类加载失败,大概率是插件 ABI 不兼容
真正容易被忽略的是:GoLand 2026.1.1 默认禁用 hs_err 生成,且 idea.log 的轮转策略极保守——不改 idea.properties,默认只留 3 个 1MB 文件,崩溃前的日志早被刷掉了。

















