mdbEven when running on Linux, it is possible to debug node memory issues using mdb, the illumos debugger: MDB and Linux.
Generate a core dump of the node process using gcore.
Install the Manta utilities.
Even if they conflict with existing binaries, the commands can be run directly from /usr/lib/node_modules/manta/bin/.
Copy the node binary and the core file into a debug directory.
Per the installation instructions, export Manta environment vars.
Upload node and core using mput:
tar cz debug | mput ~~/stor/debug.tar.gz
Follow the instructions to create and run mmdb.sh:
./mmdb.sh ~~/stor/debug.tar.gz
In mdb, use ::findjsobjects and ::jsprint to navigate and print objects:
Use ::findjsobjects to find one representative of every kind of object
Use abcd1234::findjsobjects | ::findjsobjects to find all objects like abcd1234
Use abcd1234::findjsobjects -r to find all objects with a reference to abcd1234
Inspect stack frames and functions using ::jsframe, ::v8print and other commands:
::jsprint doesn’t say much about function objects; use ::v8print first on the function and then on the associated SharedFunctionInfo