aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Commands/CommandObjectWatchpoint.cpp
diff options
context:
space:
mode:
authorjimingham <jingham@apple.com>2024-02-27 10:34:01 -0800
committerGitHub <noreply@github.com>2024-02-27 10:34:01 -0800
commit2d704f4bf2edb0f9343dac818ab4d29442be9968 (patch)
treeef20273e98e399b40906c2b36e8172d3ef36e2e8 /lldb/source/Commands/CommandObjectWatchpoint.cpp
parentabc693fb4051dfb3a49ba2dcdbc2d164c53f2a51 (diff)
downloadllvm-2d704f4bf2edb0f9343dac818ab4d29442be9968.zip
llvm-2d704f4bf2edb0f9343dac818ab4d29442be9968.tar.gz
llvm-2d704f4bf2edb0f9343dac818ab4d29442be9968.tar.bz2
Start to clean up the process of defining command arguments. (#83097)
Partly, there's just a lot of unnecessary boiler plate. It's also possible to define combinations of arguments that make no sense (e.g. eArgRepeatPlus followed by eArgRepeatPlain...) but these are never checked since we just push_back directly into the argument definitions. This commit is step 1 of this cleanup - do the obvious stuff. In it, all the simple homogenous argument lists and the breakpoint/watchpoint ID/Range types, are set with common functions. This is an NFC change, it just centralizes boiler plate. There's no checking yet because you can't get a single argument wrong. The end goal is that all argument definition goes through functions and m_arguments is hidden so that you can't define inconsistent argument sets.
Diffstat (limited to 'lldb/source/Commands/CommandObjectWatchpoint.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectWatchpoint.cpp68
1 files changed, 8 insertions, 60 deletions
diff --git a/lldb/source/Commands/CommandObjectWatchpoint.cpp b/lldb/source/Commands/CommandObjectWatchpoint.cpp
index 5b74b1a..f123211 100644
--- a/lldb/source/Commands/CommandObjectWatchpoint.cpp
+++ b/lldb/source/Commands/CommandObjectWatchpoint.cpp
@@ -153,12 +153,7 @@ public:
interpreter, "watchpoint list",
"List all watchpoints at configurable levels of detail.", nullptr,
eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointList() override = default;
@@ -276,12 +271,7 @@ public:
"Enable the specified disabled watchpoint(s). If "
"no watchpoints are specified, enable all of them.",
nullptr, eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointEnable() override = default;
@@ -350,12 +340,7 @@ public:
"removing it/them. If no watchpoints are "
"specified, disable them all.",
nullptr, eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointDisable() override = default;
@@ -429,12 +414,7 @@ public:
"Delete the specified watchpoint(s). If no "
"watchpoints are specified, delete them all.",
nullptr, eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointDelete() override = default;
@@ -550,12 +530,7 @@ public:
"Set ignore count on the specified watchpoint(s). "
"If no watchpoints are specified, set them all.",
nullptr, eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointIgnore() override = default;
@@ -673,12 +648,7 @@ public:
"watchpoint. "
"Passing an empty argument clears the modification.",
nullptr, eCommandRequiresTarget) {
- CommandArgumentEntry arg;
- CommandObject::AddIDsArgumentData(arg, eArgTypeWatchpointID,
- eArgTypeWatchpointIDRange);
- // Add the entry for the first argument for this command to the object's
- // arguments vector.
- m_arguments.push_back(arg);
+ CommandObject::AddIDsArgumentData(eWatchpointArgs);
}
~CommandObjectWatchpointModify() override = default;
@@ -811,18 +781,7 @@ Examples:
" Watches my_global_var for read/write access, with the region to watch \
corresponding to the byte size of the data type.");
- CommandArgumentEntry arg;
- CommandArgumentData var_name_arg;
-
- // Define the only variant of this arg.
- var_name_arg.arg_type = eArgTypeVarName;
- var_name_arg.arg_repetition = eArgRepeatPlain;
-
- // Push the variant into the argument entry.
- arg.push_back(var_name_arg);
-
- // Push the data for the only argument into the m_arguments vector.
- m_arguments.push_back(arg);
+ AddSimpleArgumentList(eArgTypeVarName);
// Absorb the '-w' and '-s' options into our option group.
m_option_group.Append(&m_option_watchpoint, LLDB_OPT_SET_1, LLDB_OPT_SET_1);
@@ -1009,18 +968,7 @@ Examples:
Watches write access for the 1-byte region pointed to by the address 'foo + 32')");
- CommandArgumentEntry arg;
- CommandArgumentData expression_arg;
-
- // Define the only variant of this arg.
- expression_arg.arg_type = eArgTypeExpression;
- expression_arg.arg_repetition = eArgRepeatPlain;
-
- // Push the only variant into the argument entry.
- arg.push_back(expression_arg);
-
- // Push the data for the only argument into the m_arguments vector.
- m_arguments.push_back(arg);
+ AddSimpleArgumentList(eArgTypeExpression);
// Absorb the '-w' and '-s' options into our option group.
m_option_group.Append(&m_option_watchpoint, LLDB_OPT_SET_ALL,