diff --git a/lldb/source/Commands/CommandObjectThread.cpp b/lldb/source/Commands/CommandObjectThread.cpp index 65512a051ab47..7dd89e601af82 100644 --- a/lldb/source/Commands/CommandObjectThread.cpp +++ b/lldb/source/Commands/CommandObjectThread.cpp @@ -2219,7 +2219,10 @@ class CommandObjectTraceDumpInstructions : public CommandObjectParsed { nullptr, eCommandRequiresProcess | eCommandRequiresThread | eCommandTryTargetAPILock | eCommandProcessMustBeLaunched | - eCommandProcessMustBePaused | eCommandProcessMustBeTraced) {} + eCommandProcessMustBePaused | eCommandProcessMustBeTraced) { + CommandArgumentData thread_arg{eArgTypeThreadIndex, eArgRepeatOptional}; + m_arguments.push_back({thread_arg}); + } ~CommandObjectTraceDumpInstructions() override = default; diff --git a/lldb/source/Commands/CommandObjectThreadUtil.cpp b/lldb/source/Commands/CommandObjectThreadUtil.cpp index cac1bef3e9dff..504d5fa0118d4 100644 --- a/lldb/source/Commands/CommandObjectThreadUtil.cpp +++ b/lldb/source/Commands/CommandObjectThreadUtil.cpp @@ -25,6 +25,15 @@ CommandObjectIterateOverThreads::CommandObjectIterateOverThreads( m_arguments.push_back({thread_arg}); } +CommandObjectMultipleThreads::CommandObjectMultipleThreads( + CommandInterpreter &interpreter, const char *name, const char *help, + const char *syntax, uint32_t flags) + : CommandObjectParsed(interpreter, name, help, syntax, flags) { + // These commands all take thread ID's as arguments. + CommandArgumentData thread_arg{eArgTypeThreadIndex, eArgRepeatStar}; + m_arguments.push_back({thread_arg}); +} + bool CommandObjectIterateOverThreads::DoExecute(Args &command, CommandReturnObject &result) { result.SetStatus(m_success_return); diff --git a/lldb/source/Commands/CommandObjectThreadUtil.h b/lldb/source/Commands/CommandObjectThreadUtil.h index 289ffdfc18949..c8f51eabc043f 100644 --- a/lldb/source/Commands/CommandObjectThreadUtil.h +++ b/lldb/source/Commands/CommandObjectThreadUtil.h @@ -80,7 +80,9 @@ class CommandObjectIterateOverThreads : public CommandObjectParsed { /// an action on multiple threads at once instead of iterating over each thread. class CommandObjectMultipleThreads : public CommandObjectParsed { public: - using CommandObjectParsed::CommandObjectParsed; + CommandObjectMultipleThreads(CommandInterpreter &interpreter, + const char *name, const char *help, + const char *syntax, uint32_t flags); bool DoExecute(Args &command, CommandReturnObject &result) override;