Merge pull request #3178 from deepak1556/node_debugger_patch

debugger: expose v8debug
This commit is contained in:
Cheng Zhao 2015-10-23 10:36:06 +08:00
commit 79d4d52172
2 changed files with 8 additions and 7 deletions

View file

@ -4,6 +4,7 @@
#include "atom/browser/javascript_environment.h" #include "atom/browser/javascript_environment.h"
#include "base/command_line.h"
#include "gin/array_buffer.h" #include "gin/array_buffer.h"
#include "gin/v8_initializer.h" #include "gin/v8_initializer.h"
@ -20,6 +21,12 @@ JavascriptEnvironment::JavascriptEnvironment()
} }
bool JavascriptEnvironment::Initialize() { bool JavascriptEnvironment::Initialize() {
auto cmd = base::CommandLine::ForCurrentProcess();
if (cmd->HasSwitch("debug-brk")) {
// Need to be called before v8::Initialize().
const char expose_debug_as[] = "--expose_debug_as=v8debug";
v8::V8::SetFlagsFromString(expose_debug_as, sizeof(expose_debug_as) - 1);
}
gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode, gin::IsolateHolder::Initialize(gin::IsolateHolder::kNonStrictMode,
gin::ArrayBufferAllocator::SharedInstance()); gin::ArrayBufferAllocator::SharedInstance());
return true; return true;

View file

@ -35,17 +35,14 @@ NodeDebugger::NodeDebugger(v8::Isolate* isolate)
weak_factory_(this) { weak_factory_(this) {
bool use_debug_agent = false; bool use_debug_agent = false;
int port = 5858; int port = 5858;
bool wait_for_connection = false;
std::string port_str; std::string port_str;
base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); base::CommandLine* cmd = base::CommandLine::ForCurrentProcess();
if (cmd->HasSwitch("debug")) { if (cmd->HasSwitch("debug")) {
use_debug_agent = true; use_debug_agent = true;
port_str = cmd->GetSwitchValueASCII("debug"); port_str = cmd->GetSwitchValueASCII("debug");
} } else if (cmd->HasSwitch("debug-brk")) {
if (cmd->HasSwitch("debug-brk")) {
use_debug_agent = true; use_debug_agent = true;
wait_for_connection = true;
port_str = cmd->GetSwitchValueASCII("debug-brk"); port_str = cmd->GetSwitchValueASCII("debug-brk");
} }
@ -56,9 +53,6 @@ NodeDebugger::NodeDebugger(v8::Isolate* isolate)
isolate_->SetData(kIsolateSlot, this); isolate_->SetData(kIsolateSlot, this);
v8::Debug::SetMessageHandler(DebugMessageHandler); v8::Debug::SetMessageHandler(DebugMessageHandler);
if (wait_for_connection)
v8::Debug::DebugBreak(isolate_);
uv_async_init(uv_default_loop(), &weak_up_ui_handle_, ProcessMessageInUI); uv_async_init(uv_default_loop(), &weak_up_ui_handle_, ProcessMessageInUI);
// Start a new IO thread. // Start a new IO thread.