[Lldb-commits] [lldb] r278440 - Decoupled Options from CommandInterpreter.

Todd Fiala via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 11 17:33:43 PDT 2016


:-)

That would be great.  I think it would be useful to invest in that area.
I'll add that to my list.

On Thu, Aug 11, 2016 at 5:11 PM, Zachary Turner <zturner at google.com> wrote:

> 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::InvokeCommonCompletionCallback
>>> s(m_interpreter,
>>> +
>>> +        CommandCompletions::InvokeCommonCompletionCallback
>>> s(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::InvokeCommonCompletionCallback
>>> s(m_interpreter,
>>> +
>>> +        CommandCompletions::InvokeCommonCompletionCallback
>>> s(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
>>> -
>>
>>


-- 
-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20160811/df949fce/attachment-0001.html>


More information about the lldb-commits mailing list