Skip to content

update mdb_v8 to support V8 4.4.x, and possibly 4.5.x #23

@misterdjules

Description

@misterdjules

nodejs/node upgraded V8 to 4.4.63.30 in the 4.x branch, and to V8 4.5.x in the master branch.

mdb_v8 does not support these new V8 versions correctly:

$ node --version
v5.0.0-pre
$ node -e 'setTimeout(function foo() { process.abort(); }, 10);'
Abort (core dumped)
$ mdb /var/cores/core.node.71508 
Loading modules: [ libumem.so.1 libc.so.1 ld.so.1 ]
> ::load v8
V8 version: 4.5.103.30
mdb: failed to read "v8dbg_AsciiStringTag": unknown symbol name
mdb: couldn't find class "Map", field "constructor"
mdb: failed to autoconfigure from target; commands may have incorrect results!
C++ symbol demangling enabled
> ::jsstack
native: libc.so.1`_lwp_kill+0xa
native: libc.so.1`raise+0x20
native: libc.so.1`abort+0x98
        (1 internal frame elided)
native: v8::internal::FunctionCallbackArguments::Call+0x98
native: _ZN2v88internalL19HandleApiCallHelperILb0EEENS0_11MaybeHandleINS...
native: _ZN2v88internalL21Builtin_HandleApiCallEiPPNS0_6ObjectEPNS0_7Iso...
        (1 internal frame elided)
js:     ?o
js:     ??????t
        (1 internal frame elided)
        (1 internal frame elided)
native: v8::internal::Execution::Call+0x107
native: v8::Function::Call+0xff
native: v8::Function::Call+0x41
native: node::AsyncWrap::MakeCallback+0x10e
native: node::TimerWrap::OnTimeout+0x96
native: uv__run_timers+0x7d
native: uv_run+0x35a
native: node::Start+0x528
native: _start+0x6c
> 

I have a set of changes ready that fix these issues, and so far all tests pass for 64bits and 32bits builds. I will submit a PR with these changes shortly.

It's not clear to me yet with which V8 version node 4.x LTS will ship, even though it seems likely that it'll ship with V8 4.5.x. From my tests, the fixes needed to make mdb_v8 work with V8 4.4.x are sufficient to make it work with V8 4.5.x (all tests pass).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions