You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac上Node.js用lldb事后调试仅显示单个调用帧问题

解决M1 Mac上Node.js事后调试调用栈不完整问题

1. 确认Node.js架构匹配

首先确保你使用的是arm64原生版本的Node.js,而非通过Rosetta运行的x86_64版本:

  • 执行命令:node -p process.arch
  • 如果输出是x64,需要重新安装arm64版本的Node.js:
    • 用nvm安装:arch -arm64 nvm install --lts
    • 或从Node.js官网直接下载arm64架构的安装包

2. 重新生成符合架构的核心文件

删除旧的core文件,重新执行以下步骤:

  • 设置core文件大小无限制:ulimit -c unlimited
  • 运行崩溃脚本:node --abort-on-uncaught-exception crash.js
    (crash.js内容:throw new Error('BOOM');)

3. 正确加载核心文件并查看调用栈

直接使用lldb加载,无需额外指定arch -arm64(M1上lldb默认适配arm64):

  • 执行命令:lldb node -c core.xxxx(替换xxxx为实际的进程ID)
  • 在lldb交互界面中,执行以下命令查看完整调用栈:
    • bt all:查看所有线程的调用栈
    • thread backtrace <线程ID>:查看指定线程的详细调用栈

额外注意事项

  • 如果仍无法看到完整调用栈,需要确保Node.js带有调试符号:
    • 官方安装的Node.js默认包含符号,若使用brew安装,可执行brew install node --with-debug(部分版本可能调整为brew install node --debug)
    • 或者手动下载对应版本的符号文件,在lldb中通过target symbols add <符号文件路径>加载

内容的提问来源于stack exchange,提问作者Gorez Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:00:56