Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Jun 15, 2015
  1. src: disable win_delay_load_hook in binding.gyp

    Fix a Windows-only load time linker error caused by nodejs/io.js@efadffe
    ("win,node-gyp: optionally allow node.exe/iojs.exe to be renamed"),
    which was made the default in io.js v2.2.0.
    Fixes the following error whe trying to load the add-on:
        LINK : fatal error LNK1194: cannot delay-load "iojs.exe" due to
        import of data symbol ""__declspec(dllimpo rt) const
        v8::OutputStream::`vftable'" (__imp_??_7OutputStream@v8@@6B@)";
        link without /DELAYLOAD:iojs.exe
    Fixes #57.
Commits on Jan 25, 2015
  1. src: update v0.10/v0.12v/v1.0 compatibility shim

    Update the compatibility shim to the latest version from
    Makes node-heapdump compatible with node.js v0.11.15.
    Fixes #49.
Commits on Jan 11, 2015
  1. src: update v0.10/v0.12v/v1.0 compatibility shim

    Update the compatibility shim to the latest version from
    Makes node-heapdump compatible with io.js:
    Fixes #48.
Commits on Dec 1, 2014
  1. src: update v0.10/v0.12 compatibility shim

    Update the compatibility shim to the latest version from
    Fixes a build error with VS 2013.  Credit goes to @lee-houghton
    for coming up with an alternative solution to the SFINAE problem.
    Fixes #44 - hopefully for good this time.
Commits on Nov 27, 2014
  1. src: release heap snapshot, fix memory leak

    Release the heap snapshot after it's written to disk.  Fixes unbound
    memory consumption when repeatedly taking snapshots.
    Fixes #45.
Commits on Nov 18, 2014
  1. src: update v0.10/v0.12 compatibility shim

    Update the compatibility shim to the latest version from
    Fixes a build error with VS < 2013.
    Fixes #44.
  2. src: fix benign C4244 VS warning

    Fixes a "conversion from 'int64_t' to 'int', possible loss of data"
    compiler warning.
Commits on Nov 3, 2014
  1. npm: publish v0.3.0

    There are enough substantial changes in this release to warrant a bump
    of the minor version.
  2. src: rename kNo{Fork,Signal}Flag flags

    Rename kNoForkFlag and kNoSignalFlag to kForkFlag and kSignalFlag
    respectively in order to cut down on the number of double negations.
  3. lib,src: make nofork the default behavior

    Fork-before-snapshotting is fundamentally incompatible with newer V8
    releases.  V8 uses threads now but those don't survive the call to
    fork().  Then, when creating the snapshot, V8 tries to sync up with
    a thread that no longer exists and deadlocks.
    Another issue is that forking breaks the comparison view in DevTools
    because the heap object IDs don't match up.  V8 updates them after
    creating the snapshot but those changes don't make it back to the
    parent process.
    Fixes #37 and #41.
  4. src: update v0.10/v0.12 compatibility shim

    Update the compatibility shim to the latest version from
    Fixes a segmentation fault with V8 3.29.  It's no longer safe to call
    v8::V8::IsDead() from an atexit destructor.
  5. src: add nofork option

    Add an option to prevent node-heapdump from forking on UNIX platforms.
    Forking is incompatible with node.js v0.12 and it breaks the comparison
    view in Chrome DevTools.  An upcoming commit makes nofork the default
    Refs #37 and #41.
  6. src: move code around

    This is prep work for #37, #41 and particularly #42.  There are no real
    functional changes in this commit, just a reordering of source code to
    make upcoming changes easier.
Commits on Oct 30, 2014
  1. test: fix bad cwd assumption from tests

    The tests assumed that `process.cwd() == __dirname` when scanning
    for files but did not actually enforce that.  The result was that
    `cd test && node test-sigusr2.js` worked but `node test/test-sigusr2.js`
    did not.  This commit fixes that by always chdir'ing into test/ first.
Commits on Sep 4, 2014
  1. src: format with `clang-format --style=google`

    Format the source code with clang-format.  No more shall we argue about
    what brace goes where.
  2. src: use SL v0.10/v0.11 compat shim

    Replace the homegrown compatibility shim with what we use at StrongLoop.
    Besides being battle tested, it's also more pleasing to the eye.
  3. src, test: update copyright boilerplate

    Semantic null change, touches or adds only copyright comments.
Commits on Aug 17, 2014
  1. npm: publish v0.2.10

Commits on Aug 16, 2014
  1. @kraman

    src: add optional completion callback

    kraman authored committed
    Add an optional callback argument which takes a function and is
    triggered upon completion of the heap dump.
Commits on Jun 3, 2014
  1. src: fix use of uninitialized signal handle

    With NODE_HEAPDUMP_OPTIONS=nosignal, the SIGCHLD signal handle wasn't
    initialized even though it's used by heapdump::WriteSnapshot().
    See discussion in #16.
Commits on May 18, 2014
  1. src: update to v8 3.25 api

    Apply some fix-ups to make it work with V8 3.25.  No major changes,
    just more more API functions that take an explicit isolate argument.
    Fixes #31.
Commits on Mar 16, 2014
  1. src: fix windows build

    Include node.h so the BUILDING_NODE_EXTENSION macro can work its magic
    and exports V8 functions and types properly.  Fixes the following
    build error:
        node.lib(node.exe) : error LNK2005: "public: __cdecl
        v8::Handle<class v8::Object>::Handle<class v8::Object>(class
        v8::Object *)" (??0?$Handle@VObject@v8@@@v8@@QEAA@PEAVObject@1@@Z)
        already defined in platform-win32.obj
        node.lib(node.exe) : error LNK2005: "public: __cdecl
        v8::Handle<class v8::FunctionTemplate>::Handle<class
        (??0?$Handle@VFunctionTemplate@v8@@@v8@@QEAA@XZ) already defined
        in platform-win32.obj
    Fixes #30.
Commits on Feb 13, 2014
  1. src: make backwards compatible with v0.10

    Apply some macro magic to make the module compile with both v0.10 and
    v0.11.  It doesn't look pretty but it's fairly unobtrusive.  This also
    spells the end of the v0.10 branch.
    Fixes #28.
Commits on Feb 1, 2014
  1. Merge branch 'v0.10'

  2. src: fix windows-only memory leak

    Call v8::HeapSnapshot::Delete() to free the memory.  Doing so requires
    a const_cast<> that is currently safe.  Let's hope it stays that way
    with future V8 releases.
    The memory leak only affects Windows.  On UNIX platforms, the snapshot
    is created in a forked process that exits after writing it to disk.
    Fixes #24.
    Fixes #27.
Commits on Nov 15, 2013
  1. src: update to V8 3.22 API

    Make node-heapdump work with node.js v0.11.  The most interesting
    change is that we now need to specify the v8::Isolate explicitly
    in most places.
Commits on Oct 21, 2013
  1. unix: don't abort when waitpid() returns ECHILD

    A bug in libuv makes it call `waitpid(-1)` before node-heapdump gets
    a chance to call `waitpid(pid)` and, as a result, libuv consumes the
    exit event of the process that node-heapdump forked off.
    It looks like the bug is not fixable in libuv v0.10 without undue effort
    so it probably won't get addressed.  (Libuv master is unaffected as a
    side effect of commit joyent/libuv@5c00a0e.)
    Not all is lost, however: ECHILD means there is no child process with
    that pid so we know for sure that it's safe to stop our signal watcher.
    Fixes #22.
Commits on Oct 7, 2013
  1. doc: add caveats section, document memory usage

    Due to fork()'s copy-on-write behavior on modern Unices and the fact
    that a major garbage collection cycle is performed right afterwards,
    creating a snapshot may require about 2x the amount of memory that
    was in use right before the snapshot.
Commits on Oct 6, 2013
  1. unix: allow disabling of SIGUSR2 signal handler

    Allow the user to override the installation of a SIGUSR2 signal handler
    by having him set NODE_HEAPDUMP_OPTIONS=nosignal in the environment.
    Fixes #21.
  2. build: remove wscript

    node-waf was deprecated in v0.8 and removed in v0.10.  Pre-v0.10 node.js
    versions are no longer supported as of commit 8bfd102 so there is no
    point in keeping the node-waf build script around.
Commits on Sep 25, 2013
  1. src: make snapshot filename configurable

    `heapdump.writeSnapshot()` now accepts an optional filename argument.
    Fixes #14.
Commits on Aug 19, 2013
Commits on Jul 17, 2013
  1. npm: publish v0.2.1

  2. unix: reap child process

    Don't leave zombie processes behind, reap the child process when it's
    done writing out the snapshot.
    Fixes #16.
Something went wrong with that request. Please try again.