summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJosh Gavant <josh.gavant@outlook.com>2016-12-14 20:18:15 -0800
committerJosh Gavant <josh.gavant@outlook.com>2017-01-03 15:47:40 -0800
commit6ff3b0324067b688610e85db9e008d4afceb19cb (patch)
tree5acffad60ca33ea3dbe43d8733bb07b5ce4ca9d8 /src
parentf5d92f3563b67839ee891c4781d039b77639a8b0 (diff)
downloadandroid-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.cc6
-rw-r--r--src/node_debug_options.cc36
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;
}