3.7 KiB
3.7 KiB
Cursor 自动关闭问题 · 日志分析与处理记录
日期:2026-03-04
现象:Cursor 经常莫名自动关闭。
原则:不关闭硬件加速,保留视频/剪辑等所需能力,从根因入手。
一、日志结论与根因
-
日志路径:
~/Library/Application Support/Cursor/logs/(按会话分目录,如20260304T190511) -
直接表现:
- 渲染进程崩溃(code 5):
CodeWindow: renderer process gone (reason: crashed, code: 5),随后主进程未捕获异常Render frame was disposed before WebFrameMain could be accessed,导致整个应用退出。 - Agent 分析 SQLite 报错:
[AgentAnalyticsOperationsMainService] Error ... SQLITE_ERROR: cannot start a transaction within a transaction(嵌套事务),在「存储 AI code hashes / marking commits as scored」时反复出现,可能加剧不稳定。 - 窗口无响应:
CodeWindow: detected unresponsive后有时恢复,有时被关掉。 - ptyHost 心跳超时:
No ptyHost heartbeat after 6 seconds,终端相关进程偶发无响应。
- 渲染进程崩溃(code 5):
-
根因(社区与日志综合):
- code 5 在 macOS 上多与 V8/JS 内存(OOM)、GC 压力、以及 macOS mach port 通知失败 有关,不一定与 GPU 驱动有关;硬件加速已保留,不通过关闭它来规避。
- AgentAnalyticsOperationsMainService 的嵌套事务是 Cursor 端 bug,需等官方修复或通过清理该服务数据缓解。
二、已做处理(不限制功能)
-
保持硬件加速开启
~/.cursor/argv.json中 未 启用disable-hardware-acceleration,视频/剪辑相关能力不受影响。
-
本机已有设置
cursor.general.enableCodebaseIndexing": false已关闭,减轻后台索引压力。
三、今日(3/4)日志复检结论
- 会话数:3 月 4 日共有 11 个 Cursor 日志会话(12:38~21:58),说明今日多次重启/自动关闭。
- 重复出现的错误:
CodeWindow: detected unresponsive、UnresponsiveSampleError(窗口无响应后可能被关掉);AgentAnalyticsOperationsMainService的SQLITE_ERROR: cannot start a transaction within a transaction在多个会话中反复出现;Extension host 多次正常退出(code 0),可能伴随窗口重载。 - 结论:根因与文档第一节一致,无新类型;缓解手段仍为减轻内存压力 + 清理缓存 + 等官方修复。
四、建议操作(不关功能、从根因缓解)
- 减轻内存压力:少开不需要的窗口/工作区、关掉不用的标签页;大项目可考虑单独开一个 Cursor 窗口,避免单进程负载过大。
- 清理缓存(推荐):完全退出 Cursor 后在终端执行以下命令,再重新打开,可减轻 OOM/旧缓存导致的崩溃:
若 Cursor 正在运行,请先 Cmd+Q 完全退出再执行。
rm -rf ~/Library/Application\ Support/Cursor/GPUCache ~/Library/Application\ Support/Cursor/Cache - 向 Cursor 官方反馈:把闪退时间段的
main.log(含 code 5、Render frame disposed、AgentAnalytics SQLITE_ERROR)提交到 Cursor Forum 或官方支持,便于他们修 code 5 与 SQLite 嵌套事务。 - 保持 Cursor 更新:当前 2.6.11,后续版本可能修复上述问题。
若官方或社区后续提供「增加 JS 堆大小」等 argv 支持,再在 argv.json 中按文档配置,无需关闭硬件加速。
五、日志位置速查
| 内容 | 路径 |
|---|---|
| 主进程日志 | ~/Library/Application Support/Cursor/logs/<会话目录>/main.log |
| 窗口日志 | 同上目录下 window1/、window2/ 等 |
| 启动参数 | ~/.cursor/argv.json |