diff options
author | Josh Gavant <josh.gavant@outlook.com> | 2016-12-14 20:18:15 -0800 |
---|---|---|
committer | Josh Gavant <josh.gavant@outlook.com> | 2017-01-03 15:47:40 -0800 |
commit | 6ff3b0324067b688610e85db9e008d4afceb19cb (patch) | |
tree | 5acffad60ca33ea3dbe43d8733bb07b5ce4ca9d8 /src | |
parent | f5d92f3563b67839ee891c4781d039b77639a8b0 (diff) | |
download | android-node-v8-6ff3b0324067b688610e85db9e008d4afceb19cb.tar.gz android-node-v8-6ff3b0324067b688610e85db9e008d4afceb19cb.tar.bz2 android-node-v8-6ff3b0324067b688610e85db9e008d4afceb19cb.zip |
src, inspector: add --inspect-brk option
add an --inspect-brk option which breaks on
first line of user script. same behavior as old
--debug-brk flag.
PR-URL: https://github.com/nodejs/node/pull/8979
Reviewed-By: Eugene Ostroukhov <eostroukhov@chromium.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@keybase.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/node.cc | 6 | ||||
-rw-r--r-- | src/node_debug_options.cc | 36 |
2 files changed, 28 insertions, 14 deletions
diff --git a/src/node.cc b/src/node.cc index da4e1d4b0e..5a2b4843be 100644 --- a/src/node.cc +++ b/src/node.cc @@ -3480,6 +3480,12 @@ static void PrintHelp() { " does not appear to be a terminal\n" " -r, --require module to preload (option can be " "repeated)\n" +#if HAVE_INSPECTOR + " --inspect[=host:port] activate inspector on host:port\n" + " (default: 127.0.0.1:9229)\n" + " --inspect-brk[=host:port] activate inspector on host:port\n" + " and break at start of user script\n" +#endif " --no-deprecation silence deprecation warnings\n" " --trace-deprecation show stack traces on deprecations\n" " --throw-deprecation throw an exception on deprecations\n" diff --git a/src/node_debug_options.cc b/src/node_debug_options.cc index 5681e3d46e..410e23acb3 100644 --- a/src/node_debug_options.cc +++ b/src/node_debug_options.cc @@ -30,7 +30,8 @@ int parse_and_validate_port(const std::string& port) { } std::pair<std::string, int> split_host_port(const std::string& arg) { - // IPv6, no port + // remove_brackets only works if no port is specified + // so if it has an effect only an IPv6 address was specified std::string host = remove_brackets(arg); if (host.length() < arg.length()) return {host, -1}; @@ -46,6 +47,7 @@ std::pair<std::string, int> split_host_port(const std::string& arg) { } return {"", parse_and_validate_port(arg)}; } + // host and port found return std::make_pair(remove_brackets(arg.substr(0, colon)), parse_and_validate_port(arg.substr(colon + 1))); } @@ -90,6 +92,7 @@ bool DebugOptions::ParseOption(const std::string& option) { argument = option.substr(pos + 1); } + // --debug and --inspect are mutually exclusive if (option_name == "--debug") { debugger_enabled_ = true; } else if (option_name == "--debug-brk") { @@ -98,7 +101,15 @@ bool DebugOptions::ParseOption(const std::string& option) { } else if (option_name == "--inspect") { debugger_enabled_ = true; enable_inspector = true; - } else if (option_name != "--debug-port" || !has_argument) { + } else if (option_name == "--inspect-brk") { + debugger_enabled_ = true; + enable_inspector = true; + wait_connect_ = true; + } else if ((option_name != "--debug-port" && + option_name != "--inspect-port") || + !has_argument) { + // only other valid possibility is --debug-port, + // which requires an argument return false; } @@ -112,20 +123,17 @@ bool DebugOptions::ParseOption(const std::string& option) { #endif } - if (!has_argument) { - return true; + // argument can be specified for *any* option to specify host:port + if (has_argument) { + std::pair<std::string, int> host_port = split_host_port(argument); + if (!host_port.first.empty()) { + host_name_ = host_port.first; + } + if (host_port.second >= 0) { + port_ = host_port.second; + } } - // FIXME(bnoordhuis) Move IPv6 address parsing logic to lib/net.js. - // It seems reasonable to support [address]:port notation - // in net.Server#listen() and net.Socket#connect(). - std::pair<std::string, int> host_port = split_host_port(argument); - if (!host_port.first.empty()) { - host_name_ = host_port.first; - } - if (host_port.second >= 0) { - port_ = host_port.second; - } return true; } |