summaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectTarget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Commands/CommandObjectTarget.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectTarget.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp
index e5421e566cd5..8c877fc97105 100644
--- a/lldb/source/Commands/CommandObjectTarget.cpp
+++ b/lldb/source/Commands/CommandObjectTarget.cpp
@@ -4794,6 +4794,17 @@ public:
m_one_liner.push_back(std::string(option_arg));
break;
+ case 'I': {
+ bool value, success;
+ value = OptionArgParser::ToBoolean(option_arg, false, &success);
+ if (success)
+ m_at_initial_stop = value;
+ else
+ error = Status::FromErrorStringWithFormat(
+ "invalid boolean value '%s' passed for -F option",
+ option_arg.str().c_str());
+ } break;
+
default:
llvm_unreachable("Unimplemented option");
}
@@ -4820,6 +4831,7 @@ public:
m_use_one_liner = false;
m_one_liner.clear();
m_auto_continue = false;
+ m_at_initial_stop = true;
}
std::string m_class_name;
@@ -4840,6 +4852,7 @@ public:
// Instance variables to hold the values for one_liner options.
bool m_use_one_liner = false;
std::vector<std::string> m_one_liner;
+ bool m_at_initial_stop;
bool m_auto_continue = false;
};
@@ -5005,6 +5018,9 @@ protected:
if (specifier_up)
new_hook_sp->SetSpecifier(specifier_up.release());
+ // Should we run at the initial stop:
+ new_hook_sp->SetRunAtInitialStop(m_options.m_at_initial_stop);
+
// Next see if any of the thread options have been entered:
if (m_options.m_thread_specified) {