clayborg added a comment.

In https://reviews.llvm.org/D47302#1111249, @polyakov.alex wrote:

> In https://reviews.llvm.org/D47302#1111078, @clayborg wrote:
>
> > It might make sense to create a new SBTargetSettings class that has 
> > accessors. Then we can have to accessors on SBTarget:
> >
> >   class SBTarget {
> >     static SBTargetSettings GetGlobalSettings();
> >     SBTargetSettings GetSettings();
> >   };
> >
>
>
> What global settings should be in your opinion? I guess that they should be 
> stored in the `SBDebugger`, and a typical use case for them would be:
>
>   SBTarget target;
>   target.HookUpGlobalSettings;
>


I would code it exactly as I specified above. Ask the SBTarget for its 
settings. We would only expose the "target.*" settings through the 
SBTargetSettings class. SBDebugger could have its own settings for everything 
that is stored in the Debugger.cpp g_properties variable, those would be in 
SBDebuggerSettings if we need access to those:

  class SBDebugger {
    static SBDebuggerSettings GetGlobalSettings();
    SBDebuggerSettings GetSettings();
  };



>> This allows us to expose settings in a way that would allow us to serialize 
>> the settings and then load them again later.
>> 
>>   class SBTargetSettings {
>>     // Accessors for "target...." setting
>>     void AppendImageSearchPath(const char *from, const char *to);
>>     size_t GetNumImageSearchPaths();
>>     const char *GetImageSearchPathAtIndex(size_t i);
>>     // Save and load all settings
>>     void Load(SBStream &s);
>>     void Save(SBStream &s);
>>   };
> 
> Serialization sounds good, but, to accurately understand you, do you mean 
> "classic" serialization with saving data into the file or serialization just 
> for the time when debugger is run?

SBStream can be a string buffer or a file. We should probably save to JSON and 
load from JSON. But that doesn't need to be done in this patch.


Repository:
  rL LLVM

https://reviews.llvm.org/D47302



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to