From: Ali Ijaz Sheikh Date: Sun, 23 Aug 2015 13:28:57 +0000 (-0700) Subject: src: apply debug force load fixups from 41e63fb X-Git-Tag: v4.0.0~31 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=808de0da032381a8ea0993fce3f0a333db7c1eb1;p=platform%2Fupstream%2Fnodejs.git src: apply debug force load fixups from 41e63fb Apply the src/node_contextify.cc and lib/module.js fixups from @bnoordhuis https://github.com/nodejs/node/commit/41e63fb088a29fa05e16fb0d997255678134c043 PR-URL: https://github.com/nodejs/node/pull/2509 Reviewed-By: Ben Noordhuis --- diff --git a/lib/module.js b/lib/module.js index aaa6220..da8a906 100644 --- a/lib/module.js +++ b/lib/module.js @@ -423,6 +423,10 @@ Module.prototype._compile = function(content, filename) { // Set breakpoint on module start if (filename === resolvedArgv) { + // Installing this dummy debug event listener tells V8 to start + // the debugger. Without it, the setBreakPoint() fails with an + // 'illegal access' error. + global.v8debug.Debug.setListener(function() {}); global.v8debug.Debug.setBreakPoint(compiledWrapper, 0, 0); } } diff --git a/src/node_contextify.cc b/src/node_contextify.cc index ae043eb..e1f11c6 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -261,6 +261,12 @@ class ContextifyContext { if (script_source.IsEmpty()) return; // Exception pending. Local debug_context = Debug::GetDebugContext(); + if (debug_context.IsEmpty()) { + // Force-load the debug context. + Debug::GetMirror(args.GetIsolate()->GetCurrentContext(), args[0]); + debug_context = Debug::GetDebugContext(); + CHECK(!debug_context.IsEmpty()); + } Environment* env = Environment::GetCurrent(args); ScopedEnvironment env_scope(debug_context, env); Context::Scope context_scope(debug_context);