<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jul 2, 2014 at 4:36 PM,  <span dir="ltr"><<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Then the way command objects work is that their options are baked into the object handed to the command interpreter when they are added to the interpreter.  There's one command object for a given command name registered at startup.  I'm not sure how excited I am about swapping these things in and out as the currently selected Platform/Target/Process changes.  For instance, if you could very well be running a command for with TargetA currently selected in the main lldb interpreter, and at the same time the process in TargetB could hit a breakpoint and want to run some commands for its breakpoint action...  It would be a pain to juggle that sort of thing...  It would be much simpler to keep all the options in one command object, and have the context in which the command is running determine the validity of the commands options.</blockquote>
<div><br></div><div>What about attaching a (possibly different) CommandInterpreter to each Platform object?  They could differ arbitrarily.  So if TargetA hits a breakpoint followed by TargetB, we would just go through each Target's attached interpreter, and everything should "just work".</div>
</div></div></div>