借助 Coredump 调试 nodejs

Tags
nodejs
Created
Aug 4, 2018 9:03 AM

https://zhuanlan.zhihu.com/p/41178823

Core Dump,是操作系统提供的调试辅助操作,包含 内存分配信息program counter 以及 堆栈指针 等关键信息。

自动记录:

  • ulimit -c unlimited 打开内核限制 // 每个都是上 G 的大文件,注意磁盘占用
  • node --abort-on-uncaught-exception 来对出现未捕获的异常时也进行自动 Core dump

手动记录:调用 gcore <pid> 的方式来手动生成

lldb 分析:

  • $ lldb node -c core.<pid> # lldb -- node <file>.js
  • (lldb) bt
  • (lldb) v8 bt # 得到 js 堆栈
  • (lldb) v8 p 0x0000034b9a6fa859 # v8 i
SuperMade with Super