[Lldb-commits] [lldb] r278440 - Decoupled Options from CommandInterpreter.
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Thu Aug 11 17:11:20 PDT 2016
Have you considered writing some unit test for all the option stuff now?
On Thu, Aug 11, 2016 at 5:10 PM Zachary Turner <zturner at google.com> wrote:
> This sounds very helpful. It also means it should become easier to start
> unit testing the options framework
>
> On Thu, Aug 11, 2016 at 4:59 PM Todd Fiala via lldb-commits <
> lldb-commits at lists.llvm.org> wrote:
>
>> Author: tfiala
>> Date: Thu Aug 11 18:51:28 2016
>> New Revision: 278440
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=278440&view=rev
>> Log:
>> Decoupled Options from CommandInterpreter.
>>
>> Options used to store a reference to the CommandInterpreter instance
>> in the base Options class. This made it impossible to parse options
>> independent of a CommandInterpreter.
>>
>> This change removes the reference from the base class. Instead, it
>> modifies the options-parsing-related methods to take an
>> ExecutionContext pointer, which the options may inspect if they need
>> to do so.
>>
>> Closes https://reviews.llvm.org/D23416
>> Reviewers: clayborg, jingham
>>
>> Modified:
>> lldb/trunk/include/lldb/Interpreter/Args.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupArchitecture.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupBoolean.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupFile.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupFormat.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupOutputFile.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupPlatform.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupString.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupUInt64.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupUUID.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupVariable.h
>> lldb/trunk/include/lldb/Interpreter/OptionGroupWatchpoint.h
>> lldb/trunk/include/lldb/Interpreter/Options.h
>> lldb/trunk/include/lldb/Target/Platform.h
>> lldb/trunk/include/lldb/Target/Process.h
>> lldb/trunk/source/Commands/CommandObjectArgs.cpp
>> lldb/trunk/source/Commands/CommandObjectArgs.h
>> lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp
>> lldb/trunk/source/Commands/CommandObjectBreakpointCommand.cpp
>> lldb/trunk/source/Commands/CommandObjectBugreport.cpp
>> lldb/trunk/source/Commands/CommandObjectCommands.cpp
>> lldb/trunk/source/Commands/CommandObjectDisassemble.cpp
>> lldb/trunk/source/Commands/CommandObjectDisassemble.h
>> lldb/trunk/source/Commands/CommandObjectExpression.cpp
>> lldb/trunk/source/Commands/CommandObjectExpression.h
>> lldb/trunk/source/Commands/CommandObjectFrame.cpp
>> lldb/trunk/source/Commands/CommandObjectHelp.cpp
>> lldb/trunk/source/Commands/CommandObjectHelp.h
>> lldb/trunk/source/Commands/CommandObjectLog.cpp
>> lldb/trunk/source/Commands/CommandObjectMemory.cpp
>> lldb/trunk/source/Commands/CommandObjectPlatform.cpp
>> lldb/trunk/source/Commands/CommandObjectPlugin.cpp
>> lldb/trunk/source/Commands/CommandObjectProcess.cpp
>> lldb/trunk/source/Commands/CommandObjectRegister.cpp
>> lldb/trunk/source/Commands/CommandObjectSettings.cpp
>> lldb/trunk/source/Commands/CommandObjectSource.cpp
>> lldb/trunk/source/Commands/CommandObjectTarget.cpp
>> lldb/trunk/source/Commands/CommandObjectThread.cpp
>> lldb/trunk/source/Commands/CommandObjectType.cpp
>> lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp
>> lldb/trunk/source/Commands/CommandObjectWatchpointCommand.cpp
>> lldb/trunk/source/Expression/REPL.cpp
>> lldb/trunk/source/Interpreter/Args.cpp
>> lldb/trunk/source/Interpreter/CommandAlias.cpp
>> lldb/trunk/source/Interpreter/CommandObject.cpp
>> lldb/trunk/source/Interpreter/CommandObjectRegexCommand.cpp
>> lldb/trunk/source/Interpreter/OptionGroupArchitecture.cpp
>> lldb/trunk/source/Interpreter/OptionGroupBoolean.cpp
>> lldb/trunk/source/Interpreter/OptionGroupFile.cpp
>> lldb/trunk/source/Interpreter/OptionGroupFormat.cpp
>> lldb/trunk/source/Interpreter/OptionGroupOutputFile.cpp
>> lldb/trunk/source/Interpreter/OptionGroupPlatform.cpp
>> lldb/trunk/source/Interpreter/OptionGroupString.cpp
>> lldb/trunk/source/Interpreter/OptionGroupUInt64.cpp
>> lldb/trunk/source/Interpreter/OptionGroupUUID.cpp
>> lldb/trunk/source/Interpreter/OptionGroupValueObjectDisplay.cpp
>> lldb/trunk/source/Interpreter/OptionGroupVariable.cpp
>> lldb/trunk/source/Interpreter/OptionGroupWatchpoint.cpp
>> lldb/trunk/source/Interpreter/OptionValueArch.cpp
>> lldb/trunk/source/Interpreter/OptionValueFileSpec.cpp
>> lldb/trunk/source/Interpreter/Options.cpp
>>
>> lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
>>
>> lldb/trunk/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp
>> lldb/trunk/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp
>> lldb/trunk/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
>> lldb/trunk/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
>> lldb/trunk/source/Target/Platform.cpp
>> lldb/trunk/source/Target/Process.cpp
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/Args.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/Args.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/Args.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/Args.h Thu Aug 11 18:51:28 2016
>> @@ -314,10 +314,22 @@ public:
>> /// get processed start at the second argument. The first argument
>> /// is assumed to be the command and will not be touched.
>> ///
>> + /// param[in] platform_sp
>> + /// The platform used for option validation. This is necessary
>> + /// because an empty execution_context is not enough to get us
>> + /// to a reasonable platform. If the platform isn't given,
>> + /// we'll try to get it from the execution context. If we can't
>> + /// get it from the execution context, we'll skip validation.
>> + ///
>> + /// param[in] require_validation
>> + /// When true, it will fail option parsing if validation could
>> + /// not occur due to not having a platform.
>> + ///
>> /// @see class Options
>> //------------------------------------------------------------------
>> Error
>> - ParseOptions (Options &options);
>> + ParseOptions (Options &options, ExecutionContext *execution_context,
>> + lldb::PlatformSP platform_sp, bool require_validation);
>>
>> size_t
>> FindArgumentIndexForOption (Option *long_options, int
>> long_options_index);
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupArchitecture.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupArchitecture.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupArchitecture.h
>> (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupArchitecture.h Thu Aug
>> 11 18:51:28 2016
>> @@ -37,12 +37,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> bool
>> GetArchitecture (Platform *platform, ArchSpec &arch);
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupBoolean.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupBoolean.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupBoolean.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupBoolean.h Thu Aug 11
>> 18:51:28 2016
>> @@ -51,12 +51,12 @@ namespace lldb_private {
>> }
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> OptionValueBoolean &
>> GetOptionValue ()
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupFile.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupFile.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupFile.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupFile.h Thu Aug 11
>> 18:51:28 2016
>> @@ -50,12 +50,12 @@ public:
>> }
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> OptionValueFileSpec &
>> GetOptionValue ()
>> @@ -105,12 +105,12 @@ public:
>> }
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> OptionValueFileSpecList &
>> GetOptionValue ()
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupFormat.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupFormat.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupFormat.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupFormat.h Thu Aug 11
>> 18:51:28 2016
>> @@ -46,12 +46,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> lldb::Format
>> GetFormat () const
>> @@ -111,7 +111,7 @@ public:
>>
>> protected:
>> bool
>> - ParserGDBFormatLetter (CommandInterpreter &interpreter,
>> + ParserGDBFormatLetter (ExecutionContext *execution_context,
>> char format_letter,
>> lldb::Format &format,
>> uint32_t &byte_size);
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupOutputFile.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupOutputFile.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupOutputFile.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupOutputFile.h Thu Aug
>> 11 18:51:28 2016
>> @@ -37,12 +37,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> const OptionValueFileSpec &
>> GetFile ()
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupPlatform.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupPlatform.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupPlatform.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupPlatform.h Thu Aug 11
>> 18:51:28 2016
>> @@ -47,12 +47,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> lldb::PlatformSP
>> CreatePlatformWithOptions (CommandInterpreter &interpreter,
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupString.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupString.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupString.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupString.h Thu Aug 11
>> 18:51:28 2016
>> @@ -49,12 +49,12 @@ namespace lldb_private {
>> }
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> OptionValueString &
>> GetOptionValue ()
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupUInt64.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupUInt64.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupUInt64.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupUInt64.h Thu Aug 11
>> 18:51:28 2016
>> @@ -50,12 +50,12 @@ namespace lldb_private {
>> }
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> OptionValueUInt64 &
>> GetOptionValue ()
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupUUID.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupUUID.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupUUID.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupUUID.h Thu Aug 11
>> 18:51:28 2016
>> @@ -37,12 +37,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> const OptionValueUUID &
>> GetOptionValue () const
>>
>> Modified:
>> lldb/trunk/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h
>> (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h
>> Thu Aug 11 18:51:28 2016
>> @@ -37,12 +37,12 @@ public:
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context) override;
>>
>> bool
>> AnyOptionWasSet () const
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupVariable.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupVariable.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupVariable.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupVariable.h Thu Aug 11
>> 18:51:28 2016
>> @@ -37,12 +37,12 @@ namespace lldb_private {
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_arg) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_arg,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> bool include_frame_options:1,
>> show_args:1, // Frame option only
>> (include_frame_options == true)
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/OptionGroupWatchpoint.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/OptionGroupWatchpoint.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/OptionGroupWatchpoint.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/OptionGroupWatchpoint.h Thu Aug
>> 11 18:51:28 2016
>> @@ -39,12 +39,12 @@ namespace lldb_private {
>> GetDefinitions() override;
>>
>> Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_arg) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_arg,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> // Note:
>> // eWatchRead == LLDB_WATCH_TYPE_READ; and
>>
>> Modified: lldb/trunk/include/lldb/Interpreter/Options.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Interpreter/Options.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Interpreter/Options.h (original)
>> +++ lldb/trunk/include/lldb/Interpreter/Options.h Thu Aug 11 18:51:28 2016
>> @@ -117,7 +117,7 @@ namespace lldb_private {
>> class Options
>> {
>> public:
>> - Options (CommandInterpreter &interpreter);
>> + Options ();
>>
>> virtual
>> ~Options ();
>> @@ -160,7 +160,8 @@ public:
>>
>> void
>> GenerateOptionUsage (Stream &strm,
>> - CommandObject *cmd);
>> + CommandObject *cmd,
>> + uint32_t screen_width);
>>
>> bool
>> SupportsLongOption (const char *long_option);
>> @@ -180,10 +181,10 @@ public:
>> // Option::OptionParsingStarting() like they did before. This was
>> error
>> // prone and subclasses shouldn't have to do it.
>> void
>> - NotifyOptionParsingStarting ();
>> + NotifyOptionParsingStarting (ExecutionContext *execution_context);
>>
>> Error
>> - NotifyOptionParsingFinished ();
>> + NotifyOptionParsingFinished (ExecutionContext *execution_context);
>>
>> //------------------------------------------------------------------
>> /// Set the value of an option.
>> @@ -196,12 +197,17 @@ public:
>> /// The argument value for the option that the user entered, or
>> /// nullptr if there is no argument for the current option.
>> ///
>> + /// @param[in] execution_context
>> + /// The execution context to use for evaluating the option.
>> + /// May be nullptr if the option is to be evaluated outside any
>> + /// particular context.
>> ///
>> /// @see Args::ParseOptions (Options&)
>> /// @see man getopt_long_only
>> //------------------------------------------------------------------
>> virtual Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg) = 0;
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) = 0;
>>
>> //------------------------------------------------------------------
>> /// Handles the generic bits of figuring out whether we are in an
>> @@ -245,6 +251,7 @@ public:
>> int char_pos,
>> int match_start_point,
>> int max_return_elements,
>> + CommandInterpreter &interpreter,
>> bool &word_complete,
>> lldb_private::StringList &matches);
>>
>> @@ -276,6 +283,9 @@ public:
>> /// See CommandObject::HandleCompletions for a description of
>> /// how these work.
>> ///
>> + /// @param[in] interpreter
>> + /// The command interpreter in which we're doing completion.
>> + ///
>> /// @param[out] word_complete
>> /// \btrue if this is a complete option value (a space will
>> /// be inserted after the completion.) \bfalse otherwise.
>> @@ -298,21 +308,15 @@ public:
>> int opt_element_index,
>> int match_start_point,
>> int max_return_elements,
>> + CommandInterpreter &interpreter,
>> bool &word_complete,
>> StringList &matches);
>>
>> - CommandInterpreter&
>> - GetInterpreter()
>> - {
>> - return m_interpreter;
>> - }
>> -
>> protected:
>> // This is a set of options expressed as indexes into the options
>> table for this Option.
>> typedef std::set<int> OptionSet;
>> typedef std::vector<OptionSet> OptionSetVector;
>>
>> - CommandInterpreter &m_interpreter;
>> std::vector<Option> m_getopt_table;
>> OptionSet m_seen_options;
>> OptionSetVector m_required_options;
>> @@ -343,10 +347,10 @@ protected:
>> // option parse. Each subclass must override this function and revert
>> // all option settings to default values.
>> virtual void
>> - OptionParsingStarting () = 0;
>> + OptionParsingStarting (ExecutionContext *execution_context) = 0;
>>
>> virtual Error
>> - OptionParsingFinished ()
>> + OptionParsingFinished (ExecutionContext *execution_context)
>> {
>> // If subclasses need to know when the options are done being
>> parsed
>> // they can implement this function to do extra checking
>> @@ -370,15 +374,15 @@ protected:
>> GetDefinitions () = 0;
>>
>> virtual Error
>> - SetOptionValue (CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) = 0;
>> + SetOptionValue (uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) = 0;
>>
>> virtual void
>> - OptionParsingStarting (CommandInterpreter &interpreter) = 0;
>> + OptionParsingStarting(ExecutionContext *execution_context) = 0;
>>
>> virtual Error
>> - OptionParsingFinished (CommandInterpreter &interpreter)
>> + OptionParsingFinished(ExecutionContext *execution_context)
>> {
>> // If subclasses need to know when the options are done
>> being parsed
>> // they can implement this function to do extra checking
>> @@ -390,8 +394,8 @@ protected:
>> class OptionGroupOptions : public Options
>> {
>> public:
>> - OptionGroupOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + OptionGroupOptions () :
>> + Options (),
>> m_option_defs (),
>> m_option_infos (),
>> m_did_finalize (false)
>> @@ -451,13 +455,14 @@ protected:
>>
>> Error
>> SetOptionValue(uint32_t option_idx,
>> - const char *option_arg) override;
>> + const char *option_arg,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting() override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> Error
>> - OptionParsingFinished() override;
>> + OptionParsingFinished(ExecutionContext *execution_context)
>> override;
>>
>> const OptionDefinition*
>> GetDefinitions() override
>>
>> Modified: lldb/trunk/include/lldb/Target/Platform.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Platform.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Target/Platform.h (original)
>> +++ lldb/trunk/include/lldb/Target/Platform.h Thu Aug 11 18:51:28 2016
>> @@ -1326,12 +1326,12 @@ class ModuleCache;
>> ~OptionGroupPlatformRSync() override = default;
>>
>> lldb_private::Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> const lldb_private::OptionDefinition*
>> GetDefinitions() override;
>> @@ -1362,12 +1362,12 @@ class ModuleCache;
>> ~OptionGroupPlatformSSH() override = default;
>>
>> lldb_private::Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> uint32_t
>> GetNumDefinitions() override;
>> @@ -1396,12 +1396,12 @@ class ModuleCache;
>> ~OptionGroupPlatformCaching() override = default;
>>
>> lldb_private::Error
>> - SetOptionValue(CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override;
>> + SetOptionValue(uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting(CommandInterpreter &interpreter) override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> uint32_t
>> GetNumDefinitions() override;
>>
>> Modified: lldb/trunk/include/lldb/Target/Process.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Process.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/include/lldb/Target/Process.h (original)
>> +++ lldb/trunk/include/lldb/Target/Process.h Thu Aug 11 18:51:28 2016
>> @@ -421,20 +421,21 @@ protected:
>> class ProcessLaunchCommandOptions : public Options
>> {
>> public:
>> - ProcessLaunchCommandOptions (CommandInterpreter &interpreter) :
>> - Options(interpreter)
>> + ProcessLaunchCommandOptions () :
>> + Options()
>> {
>> // Keep default values of all options in one place:
>> OptionParsingStarting ()
>> - OptionParsingStarting ();
>> + OptionParsingStarting (nullptr);
>> }
>>
>> ~ProcessLaunchCommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override;
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting() override
>> + OptionParsingStarting(ExecutionContext *execution_context) override
>> {
>> launch_info.Clear();
>> disable_aslr = eLazyBoolCalculate;
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectArgs.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectArgs.cpp?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectArgs.cpp (original)
>> +++ lldb/trunk/source/Commands/CommandObjectArgs.cpp Thu Aug 11 18:51:28
>> 2016
>> @@ -37,16 +37,18 @@ using namespace lldb_private;
>> //
>>
>> CommandObjectArgs::CommandOptions::CommandOptions (CommandInterpreter
>> &interpreter) :
>> - Options(interpreter)
>> + Options()
>> {
>> // Keep only one place to reset the values to their defaults
>> - OptionParsingStarting();
>> + OptionParsingStarting(nullptr);
>> }
>>
>> CommandObjectArgs::CommandOptions::~CommandOptions() = default;
>>
>> Error
>> -CommandObjectArgs::CommandOptions::SetOptionValue (uint32_t option_idx,
>> const char *option_arg)
>> +CommandObjectArgs::CommandOptions::SetOptionValue(uint32_t option_idx,
>> + const char *option_arg,
>> + ExecutionContext
>> *execution_context)
>> {
>> Error error;
>>
>> @@ -57,7 +59,8 @@ CommandObjectArgs::CommandOptions::SetOp
>> }
>>
>> void
>> -CommandObjectArgs::CommandOptions::OptionParsingStarting ()
>> +CommandObjectArgs::CommandOptions::OptionParsingStarting(
>> + ExecutionContext
>> *execution_context)
>> {
>> }
>>
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectArgs.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectArgs.h?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectArgs.h (original)
>> +++ lldb/trunk/source/Commands/CommandObjectArgs.h Thu Aug 11 18:51:28
>> 2016
>> @@ -32,10 +32,11 @@ namespace lldb_private {
>> ~CommandOptions() override;
>>
>> Error
>> - SetOptionValue(uint32_t option_idx, const char *option_arg)
>> override;
>> + SetOptionValue(uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override;
>>
>> void
>> - OptionParsingStarting() override;
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override;
>>
>> const OptionDefinition*
>> GetDefinitions() override;
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp (original)
>> +++ lldb/trunk/source/Commands/CommandObjectBreakpoint.cpp Thu Aug 11
>> 18:51:28 2016
>> @@ -69,7 +69,7 @@ public:
>> "breakpoint set",
>> "Sets a breakpoint or set of breakpoints in
>> the executable.",
>> "breakpoint set <cmd-options>"),
>> - m_options (interpreter)
>> + m_options ()
>> {
>> }
>>
>> @@ -84,8 +84,8 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_condition (),
>> m_filenames (),
>> m_line_num (0),
>> @@ -116,7 +116,8 @@ public:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -125,8 +126,9 @@ public:
>> {
>> case 'a':
>> {
>> - ExecutionContext exe_ctx
>> (m_interpreter.GetExecutionContext());
>> - m_load_addr = Args::StringToAddress(&exe_ctx,
>> option_arg, LLDB_INVALID_ADDRESS, &error);
>> + m_load_addr =
>> + Args::StringToAddress(execution_context,
>> option_arg,
>> + LLDB_INVALID_ADDRESS,
>> &error);
>> }
>> break;
>>
>> @@ -279,9 +281,10 @@ public:
>>
>> case 'R':
>> {
>> - ExecutionContext exe_ctx
>> (m_interpreter.GetExecutionContext());
>> lldb::addr_t tmp_offset_addr;
>> - tmp_offset_addr =
>> Args::StringToAddress(&exe_ctx, option_arg, 0, &error);
>> + tmp_offset_addr =
>> + Args::StringToAddress(execution_context,
>> option_arg,
>> + 0, &error);
>> if (error.Success())
>> m_offset_addr = tmp_offset_addr;
>> }
>> @@ -355,7 +358,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_condition.clear();
>> m_filenames.Clear();
>> @@ -892,7 +895,7 @@ public:
>> "If no breakpoint is specified, acts on the
>> last created breakpoint. "
>> "With the exception of -e, -d and -i,
>> passing an empty argument clears the modification.",
>> nullptr),
>> - m_options (interpreter)
>> + m_options ()
>> {
>> CommandArgumentEntry arg;
>> CommandObject::AddIDsArgumentData(arg, eArgTypeBreakpointID,
>> eArgTypeBreakpointIDRange);
>> @@ -911,8 +914,8 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_ignore_count (0),
>> m_thread_id(LLDB_INVALID_THREAD_ID),
>> m_thread_id_passed(false),
>> @@ -935,7 +938,8 @@ public:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1031,7 +1035,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_ignore_count = 0;
>> m_thread_id = LLDB_INVALID_THREAD_ID;
>> @@ -1418,7 +1422,7 @@ public:
>> "breakpoint list",
>> "List some or all breakpoints at
>> configurable levels of detail.",
>> nullptr),
>> - m_options (interpreter)
>> + m_options ()
>> {
>> CommandArgumentEntry arg;
>> CommandArgumentData bp_id_arg;
>> @@ -1445,8 +1449,8 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_level (lldb::eDescriptionLevelBrief),
>> m_use_dummy(false)
>> {
>> @@ -1455,7 +1459,8 @@ public:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1486,7 +1491,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_level = lldb::eDescriptionLevelFull;
>> m_internal = false;
>> @@ -1622,7 +1627,7 @@ public:
>> : CommandObjectParsed(interpreter, "breakpoint clear",
>> "Delete or disable breakpoints matching
>> the specified source file and line.",
>> "breakpoint clear <cmd-options>"),
>> - m_options(interpreter)
>> + m_options()
>> {
>> }
>>
>> @@ -1637,8 +1642,8 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_filename (),
>> m_line_num (0)
>> {
>> @@ -1647,7 +1652,8 @@ public:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1671,7 +1677,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_filename.clear();
>> m_line_num = 0;
>> @@ -1815,7 +1821,7 @@ public:
>> "breakpoint delete",
>> "Delete the specified breakpoint(s). If no
>> breakpoints are specified, delete them all.",
>> nullptr),
>> - m_options (interpreter)
>> + m_options()
>> {
>> CommandArgumentEntry arg;
>> CommandObject::AddIDsArgumentData(arg, eArgTypeBreakpointID,
>> eArgTypeBreakpointIDRange);
>> @@ -1834,8 +1840,8 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_use_dummy (false),
>> m_force (false)
>> {
>> @@ -1844,7 +1850,8 @@ public:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1868,7 +1875,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_use_dummy = false;
>> m_force = false;
>> @@ -2025,9 +2032,9 @@ public:
>> }
>>
>> Error
>> - SetOptionValue (CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override
>> + SetOptionValue (uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option =
>> g_breakpoint_name_options[option_idx].short_option;
>> @@ -2056,7 +2063,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting (CommandInterpreter &interpreter) override
>> + OptionParsingStarting (ExecutionContext *execution_context) override
>> {
>> m_name.Clear();
>> m_breakpoint.Clear();
>> @@ -2078,7 +2085,7 @@ public:
>> "Add a name to the breakpoints provided.",
>> "breakpoint name add <command-options>
>> <breakpoint-id-list>"),
>> m_name_options(),
>> - m_option_group(interpreter)
>> + m_option_group()
>> {
>> // Create the first variant for the first (and only)
>> argument for this command.
>> CommandArgumentEntry arg1;
>> @@ -2171,7 +2178,7 @@ public:
>> "Delete a name from the breakpoints
>> provided.",
>> "breakpoint name delete <command-options>
>> <breakpoint-id-list>"),
>> m_name_options(),
>> - m_option_group(interpreter)
>> + m_option_group()
>> {
>> // Create the first variant for the first (and only) argument
>> for this command.
>> CommandArgumentEntry arg1;
>> @@ -2263,7 +2270,7 @@ public:
>> "List either the names for a breakpoint or
>> the breakpoints for a given name.",
>> "breakpoint name list <command-options>"),
>> m_name_options(),
>> - m_option_group(interpreter)
>> + m_option_group()
>> {
>> m_option_group.Append (&m_name_options);
>> m_option_group.Finalize();
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectBreakpointCommand.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectBreakpointCommand.cpp?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectBreakpointCommand.cpp
>> (original)
>> +++ lldb/trunk/source/Commands/CommandObjectBreakpointCommand.cpp Thu Aug
>> 11 18:51:28 2016
>> @@ -42,7 +42,7 @@ public:
>> " If no breakpoint is specified, adds the
>> commands to the last created breakpoint.",
>> nullptr),
>> IOHandlerDelegateMultiline("DONE",
>> IOHandlerDelegate::Completion::LLDBCommand),
>> - m_options(interpreter)
>> + m_options()
>> {
>> SetHelpLong (
>> R"(
>> @@ -295,8 +295,8 @@ are no syntax errors may indicate that a
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions () :
>> + Options (),
>> m_use_commands (false),
>> m_use_script_language (false),
>> m_script_language (eScriptLanguageNone),
>> @@ -309,7 +309,8 @@ are no syntax errors may indicate that a
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -363,7 +364,7 @@ are no syntax errors may indicate that a
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_use_commands = true;
>> m_use_script_language = false;
>> @@ -566,7 +567,7 @@ public:
>> "delete",
>> "Delete the set of commands from a
>> breakpoint.",
>> nullptr),
>> - m_options (interpreter)
>> + m_options()
>> {
>> CommandArgumentEntry arg;
>> CommandArgumentData bp_id_arg;
>> @@ -593,16 +594,17 @@ public:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> - m_use_dummy (false)
>> + CommandOptions() :
>> + Options(),
>> + m_use_dummy(false)
>> {
>> }
>>
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -622,7 +624,7 @@ public:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_use_dummy = false;
>> }
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectBugreport.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectBugreport.cpp?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectBugreport.cpp (original)
>> +++ lldb/trunk/source/Commands/CommandObjectBugreport.cpp Thu Aug 11
>> 18:51:28 2016
>> @@ -36,7 +36,7 @@ public:
>> "bugreport unwind",
>> "Create a bugreport for a bug in the stack
>> unwinding code.",
>> nullptr),
>> - m_option_group(interpreter),
>> + m_option_group(),
>> m_outfile_options()
>> {
>> m_option_group.Append (&m_outfile_options, LLDB_OPT_SET_ALL,
>> LLDB_OPT_SET_1 | LLDB_OPT_SET_2 | LLDB_OPT_SET_3);
>>
>> Modified: lldb/trunk/source/Commands/CommandObjectCommands.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectCommands.cpp?rev=278440&r1=278439&r2=278440&view=diff
>>
>> ==============================================================================
>> --- lldb/trunk/source/Commands/CommandObjectCommands.cpp (original)
>> +++ lldb/trunk/source/Commands/CommandObjectCommands.cpp Thu Aug 11
>> 18:51:28 2016
>> @@ -44,7 +44,7 @@ public:
>> "command history",
>> "Dump the history of commands in this
>> session.",
>> nullptr),
>> - m_options (interpreter)
>> + m_options()
>> {
>> }
>>
>> @@ -60,8 +60,8 @@ protected:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions() :
>> + Options(),
>> m_start_idx(0),
>> m_stop_idx(0),
>> m_count(0),
>> @@ -72,7 +72,8 @@ protected:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -107,7 +108,7 @@ protected:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_start_idx.Clear();
>> m_stop_idx.Clear();
>> @@ -238,7 +239,7 @@ public:
>> CommandObjectCommandsSource(CommandInterpreter &interpreter)
>> : CommandObjectParsed(interpreter, "command source", "Read and
>> execute LLDB commands from the file <filename>.",
>> nullptr),
>> - m_options(interpreter)
>> + m_options()
>> {
>> CommandArgumentEntry arg;
>> CommandArgumentData file_arg;
>> @@ -274,8 +275,8 @@ public:
>> {
>> std::string completion_str
>> (input.GetArgumentAtIndex(cursor_index));
>> completion_str.erase (cursor_char_position);
>> -
>> -
>> CommandCompletions::InvokeCommonCompletionCallbacks(m_interpreter,
>> +
>> +
>> CommandCompletions::InvokeCommonCompletionCallbacks(GetCommandInterpreter(),
>>
>> CommandCompletions::eDiskFileCompletion,
>>
>> completion_str.c_str(),
>>
>> match_start_point,
>> @@ -296,8 +297,8 @@ protected:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions() :
>> + Options(),
>> m_stop_on_error (true),
>> m_silent_run (false),
>> m_stop_on_continue (true)
>> @@ -307,7 +308,8 @@ protected:
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -335,7 +337,7 @@ protected:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_stop_on_error.Clear();
>> m_silent_run.Clear();
>> @@ -454,9 +456,9 @@ protected:
>> }
>>
>> Error
>> - SetOptionValue (CommandInterpreter &interpreter,
>> - uint32_t option_idx,
>> - const char *option_value) override
>> + SetOptionValue (uint32_t option_idx,
>> + const char *option_value,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>>
>> @@ -483,7 +485,7 @@ protected:
>> }
>>
>> void
>> - OptionParsingStarting (CommandInterpreter &interpreter) override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_help.Clear();
>> m_long_help.Clear();
>> @@ -509,7 +511,7 @@ public:
>> CommandObjectCommandsAlias(CommandInterpreter &interpreter)
>> : CommandObjectRaw(interpreter, "command alias", "Define a
>> custom command in terms of an existing command.",
>> nullptr),
>> - m_option_group(interpreter),
>> + m_option_group(),
>> m_command_options()
>> {
>> m_option_group.Append(&m_command_options);
>> @@ -630,8 +632,9 @@ protected:
>> result.AppendError ("'command alias' requires at least two
>> arguments");
>> return false;
>> }
>> -
>> - m_option_group.NotifyOptionParsingStarting();
>> +
>> + ExecutionContext exe_ctx =
>> GetCommandInterpreter().GetExecutionContext();
>> + m_option_group.NotifyOptionParsingStarting(&exe_ctx);
>>
>> const char * remainder = nullptr;
>>
>> @@ -663,7 +666,7 @@ protected:
>> if (!ParseOptions (args, result))
>> return false;
>>
>> - Error error
>> (m_option_group.NotifyOptionParsingFinished());
>> + Error error
>> (m_option_group.NotifyOptionParsingFinished(&exe_ctx));
>> if (error.Fail())
>> {
>> result.AppendError (error.AsCString());
>> @@ -1092,7 +1095,7 @@ public:
>> "Define a custom command in terms of
>> existing commands by matching regular expressions.",
>> "command regex <cmd-name>
>> [s/<regex>/<subst>/ ...]"),
>> IOHandlerDelegateMultiline("",
>> IOHandlerDelegate::Completion::LLDBCommand),
>> - m_options(interpreter)
>> + m_options()
>> {
>> SetHelpLong(R"(
>> )" "This command allows the user to create powerful regular expression
>> commands \
>> @@ -1359,15 +1362,16 @@ private:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter)
>> + CommandOptions() :
>> + Options()
>> {
>> }
>>
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1389,7 +1393,7 @@ private:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting (ExecutionContext *execution_context)
>> override
>> {
>> m_help.clear();
>> m_syntax.clear();
>> @@ -1676,7 +1680,7 @@ public:
>> "command script import",
>> "Import a scripting module in LLDB.",
>> nullptr),
>> - m_options(interpreter)
>> + m_options()
>> {
>> CommandArgumentEntry arg1;
>> CommandArgumentData cmd_arg;
>> @@ -1706,8 +1710,8 @@ public:
>> {
>> std::string completion_str
>> (input.GetArgumentAtIndex(cursor_index));
>> completion_str.erase (cursor_char_position);
>> -
>> -
>> CommandCompletions::InvokeCommonCompletionCallbacks(m_interpreter,
>> +
>> +
>> CommandCompletions::InvokeCommonCompletionCallbacks(GetCommandInterpreter(),
>>
>> CommandCompletions::eDiskFileCompletion,
>>
>> completion_str.c_str(),
>>
>> match_start_point,
>> @@ -1728,15 +1732,16 @@ protected:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter)
>> + CommandOptions() :
>> + Options()
>> {
>> }
>>
>> ~CommandOptions() override = default;
>>
>> Error
>> - SetOptionValue (uint32_t option_idx, const char *option_arg)
>> override
>> + SetOptionValue (uint32_t option_idx, const char *option_arg,
>> + ExecutionContext *execution_context) override
>> {
>> Error error;
>> const int short_option = m_getopt_table[option_idx].val;
>> @@ -1755,7 +1760,7 @@ protected:
>> }
>>
>> void
>> - OptionParsingStarting () override
>> + OptionParsingStarting(ExecutionContext *execution_context)
>> override
>> {
>> m_allow_reload = true;
>> }
>> @@ -1850,7 +1855,7 @@ public:
>> "Add a scripted function as an LLDB
>> command.",
>> nullptr),
>> IOHandlerDelegateMultiline ("DONE"),
>> - m_options (interpreter)
>> + m_options()
>> {
>> CommandArgumentEntry arg1;
>> CommandArgumentData cmd_arg;
>> @@ -1878,8 +1883,8 @@ protected:
>> class CommandOptions : public Options
>> {
>> public:
>> - CommandOptions (CommandInterpreter &interpreter) :
>> - Options (interpreter),
>> + CommandOptions() :
>> + Options(),
>> m_class_name(),
>> m_funct_name(),
>> m_short_help(),
>> @@ -1890,7 +1895,8 @@ protected:
>> ~CommandOptions() override = default;
>>
>> Error
>> -
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160812/9eb2661a/attachment-0001.html>
More information about the lldb-commits
mailing list