V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ufo22940268
V2EX  ›  Node.js

coredump 文件用什么分析

  •  
  •   ufo22940268 · 2017-02-23 10:27:25 +08:00 · 3236 次点击
    这是一个创建于 2819 天前的主题,其中的信息可能已经有所发展或是发生改变。

    线上有一些 node 生成的 coredump 文件,大小为 1.6G

    所以大神们是用什么工具分析在线上分析这些 coredump 文件的

    我想要的信息是:

    • 哪个进程产生的 coredump
    • 哪些对象导致内存溢出了
    5 条回复    2017-02-23 22:09:44 +08:00
    linbiaye
        1
    linbiaye  
       2017-02-23 10:28:29 +08:00
    用 gdb 看。
    vingz
        2
    vingz  
       2017-02-23 10:31:00 +08:00
    C 用 gdb , nodejs 的我不清楚
    ufo22940268
        3
    ufo22940268  
    OP
       2017-02-23 10:48:09 +08:00
    有一个很慌的事情是,我现在不知道生成的那些 core.xxx 的 1.6G 的文件是 heapdump 还是 coredump
    ufo22940268
        4
    ufo22940268  
    OP
       2017-02-23 10:58:20 +08:00
    > 哪个进程产生的 coredump

    这个问题我解决了,用`file`命令就能看
    joyee
        5
    joyee  
       2017-02-23 22:09:44 +08:00 via iPhone
    core.xxx 是 coredump ,一般那个 xxx 里含有 pid ,取决于你的 core pattern 怎么定义的。

    可以用 gdb 看或者 lldb 看, bt 能看到启动命令和线程,需要加载对应的 node 二进制才能看到详细的 C++的堆栈(否则只能看到 mangled 过的名字)。 V8 的情况( JS 堆栈和堆上对象统计一类的东西)可以用 mdb_v8 或者 llnode 看到,因为是 JIT 编译的,不用这些插件读不了 JS 引擎里的东西。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1538 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 23:59 · PVG 07:59 · LAX 15:59 · JFK 18:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.