Claude Code 报错 "terminated by signal SIGSEGV (Address boundary error)":如何恢复运行
返回博客
文章claude codetroubleshootinganthropicdev toolsagente de programação

Claude Code 报错 "terminated by signal SIGSEGV (Address boundary error)":如何恢复运行

Mafra2026年9月27日阅读约 7 分钟

你输入 claude,终端却返回 terminated by signal SIGSEGV (Address boundary error)。这是 fish shell 的写法;在 bash 和 zsh 里,同一个崩溃显示为 Segmentation fault (core dumped),退出码 139。2026 年 8 月到 9 月,官方仓库 anthropics/claude-code 累积了几十个带这个信号的 issue,它们分成三种不同的情况。决定解法的是进程在什么时候崩溃。

"terminated by signal SIGSEGV (Address boundary error)" 是什么意思?

Claude Code 进程试图读写一个不允许访问的内存地址,于是被操作系统终止。这不是你的代码或项目的问题:崩溃发生在 Claude Code 二进制文件内部。

Claude Code 的原生安装是一个内置 Bun 运行时的单一可执行文件。9 月的 issue 几乎都指向这个运行时内部:要么是某个版本的构建本身有问题,要么是 Bun 所用的 JavaScriptCore 垃圾回收器出错。所以下面的解法几乎都和你运行哪个版本有关,而不是配置。

你属于三种情况中的哪一种?

看崩溃发生的时间点。下表汇总了官方 issue 中出现的三种情况及各自的解法。

什么时候崩溃典型表现原因怎么办
启动时,连 claude --version 都崩,且刚刚更新过每次都崩,100%新版本的构建在你的系统上有问题回退到上一个能启动的版本,并锁定自动更新
安装过程中Bun 报告中出现 CPU lacks AVX support处理器不支持 AVX目前没有版本能解决;换一台机器运行
原本正常的会话中途崩溃间歇性,有时发生在会话空闲时运行时垃圾回收器故障用 claude --continue 恢复,并切换版本
Claude Code SIGSEGV 流程图:启动就崩溃是版本问题,需要回退;安装就崩溃是 CPU 不支持 AVX;会话中途崩溃是 Bun 垃圾回收问题,用 claude --continue 恢复;改用 stable 通道可避免再次发生
Claude Code 的三种 SIGSEGV 情况及各自解法。来源:issue #89390、#92749、#87974、#95655、#96793(anthropics/claude-code)及官方文档。

更新后一启动就崩溃:怎么回退版本?

如果连 claude --version 都触发 SIGSEGV,说明自动更新装上的版本在你的系统上有问题。回退到上一个版本,并在修复发布前关闭自动更新。

2026 年的两个真实案例:

  • 2.1.243(issue #89390 和 #89484,8 月 25 日):在 glibc 2.44 的 Linux x86_64 上一启动就段错误,而同一台机器上的 2.1.239、2.1.240 和 2.1.241 都能正常启动。根据 #89390 中的反馈,修复在 2.1.250 中发布。
  • 2.1.251 及之后(issue #92749,9 月 7 日,仍未关闭):在部分 Linux 机器上,内置 Bun 1.4.1 的版本启动约 25 毫秒后就崩溃,最后一个能用的是内置 Bun 1.4.0 的 2.1.243。

第 1 步:查看磁盘上有哪些版本。macOS 和 Linux 上的原生安装会把每个版本放在 ~/.local/share/claude/versions/,并让 ~/.local/bin/claude 指向其中一个。逐个测试:

ls ~/.local/share/claude/versions/
for v in ~/.local/share/claude/versions/*; do echo "$v"; "$v" --version; done

能输出类似 2.1.241 (Claude Code) 的就是可用版本。有问题的版本会以退出码 139 结束。

第 2 步:用安装脚本重新安装可用版本。这里不能用 claude install,因为它运行在同一个正在崩溃的二进制文件里。官方脚本接受版本号参数:

curl -fsSL https://claude.ai/install.sh | bash -s 2.1.241

如果你是通过 npm 安装的,对应做法是锁定包版本:

npm install -g @anthropic-ai/claude-code@2.1.241

第 3 步:防止自动更新把有问题的版本装回来。不这样做的话,下一次后台检查会重新安装同一个版本。在 ~/.claude/settings.json 中:

{
  "env": {
    "DISABLE_AUTOUPDATER": "1"
  }
}

用 claude doctor 确认:Auto-updates 这一行应显示 disabled (set by env: DISABLE_AUTOUPDATER)。

不关闭自动更新的替代方案:把 ~/.local/bin/claude 这个链接换成一个锁定版本的脚本。官方文档确认,自 v2.1.207 起,自动更新会保留该路径下的自定义启动器:新版本照常下载到 versions/,但运行哪个版本由你的脚本决定。这是 #89390 中给出的变通方法:

#!/bin/sh
PIN="${CLAUDE_PIN:-2.1.241}"
BIN="$HOME/.local/share/claude/versions/$PIN"
if [ ! -x "$BIN" ]; then
  echo "claude: pinned version $PIN not found in ~/.local/share/claude/versions" >&2
  exit 127
fi
exec "$BIN" "$@"

想在不改脚本的情况下测试新版本,运行 CLAUDE_PIN=2.1.283 claude --version。

注意模型的最低版本要求。在 #92749 中,回退到 2.1.243 后,API 以 claude_code_version_too_old: "version 2.1.251 or newer is required" 拒绝了 Fable 5.1。如果回退后用不了你常用的模型,在修复发布前先用 /model 换一个模型。

安装时崩溃并提示 "CPU lacks AVX support":有办法吗?

目前从版本层面没有办法。在不支持 AVX 的 x86-64 处理器上,原生安装器和 npm 包以同样的方式失败,所以换安装渠道也没用。

Issue #87974(2026 年 8 月 19 日)展示了完整输出:

CPU lacks AVX support. Please consider upgrading to a newer CPU.
panic(main thread): Segmentation fault at address 0x43AE6000000
oh no: Bun has crashed. This indicates a bug in Bun, not your code.

报告者用 gdb 调试后证明,这次崩溃是越过内存块末尾最多 3 字节的读取,而不是非法指令。该 issue 于 2026 年 9 月 22 日因长期无活动被关闭,没有修复。再尝试之前,先确认你的 CPU 是否支持 AVX:

grep -o -w 'avx\|avx2' /proc/cpuinfo | sort -u

输出为空即可确认是这种情况。实际可行的做法是在支持 AVX 的机器上运行代理,再通过 SSH 连接。

会话中途崩溃:怎样不丢失工作?

从中断的地方恢复对话;如果崩溃反复出现,就切换版本。会话历史保存在磁盘上,所以 SIGSEGV 终止的是进程,不是对话。

claude --continue   # 恢复当前目录中最近的一次对话
claude --resume     # 选择要恢复的对话

这种情况是间歇性的,更难定位。9 月有两份详细报告:

  • #95655(9 月 20 日,未关闭):linux-x64 二进制在空闲会话中崩溃,从 2.1.210 到 2.1.278 反复出现。core dump 分析指向对已释放内存的写入,垃圾回收器随后撞上被破坏的数据。同一报告记录到,在一次大版本的内核和 glibc 升级后,崩溃频率从每 9 天 1 次升到 39 小时内 2 次。
  • #96793(9 月 24 日,未关闭):2.1.280 在通过 VS Code Remote-SSH 使用的 Remote Control 会话中出现回归,报错 panic(main thread): Segmentation fault at address 0x0。报告中最后一个正常版本是 2.1.279。

对 #96793 来说,stable 通道可以直接解决:2026 年 9 月 27 日它停在回归之前的 2.1.274,而 latest 是 2.1.283(npm 包 @anthropic-ai/claude-code 的 dist-tags)。

要附到 issue 里时,内核日志会显示崩溃的地址和确切版本:

journalctl -k | grep -i 'claude.*segfault'
coredumpctl list claude

怎样避免下一次更新再次出问题?

切换到 stable 通道。根据官方文档,它提供大约一周前的版本,并跳过有重大回归的版本,而 2.1.243 和 2.1.280 正是被这类回归击倒的。

{
  "autoUpdatesChannel": "stable"
}

也可以在 /config 的 Auto-update channel 选项里修改,或者直接安装到该通道:

curl -fsSL https://claude.ai/install.sh | bash -s stable

修复发布后,撤销你锁定的设置。从 settings.json 中删掉 DISABLE_AUTOUPDATER,然后运行 claude update。如果用了自定义启动器,删除脚本并重新运行安装器,它会重建链接并恢复版本管理:

rm ~/.local/bin/claude
curl -fsSL https://claude.ai/install.sh | bash

如果 SIGSEGV 让你在工作中途没了编程代理,终端里再备一个作为 B 计划会更稳妥。Verboo Code 提供无限 token。

喜欢这篇文章吗?
把知识分享给你的朋友。
// 继续阅读

相关文章