summaryrefslogtreecommitdiffstats
path: root/lldb/source/Target/Process.cpp
diff options
context:
space:
mode:
authorTodd Fiala <todd.fiala@gmail.com>2016-08-11 23:51:28 +0000
committerTodd Fiala <todd.fiala@gmail.com>2016-08-11 23:51:28 +0000
commite1cfbc79420fee0b71bad62f8d413b68a0eca91e (patch)
treeab91f6f91be4051731e37ed69ca9ff8c7bdad1ff /lldb/source/Target/Process.cpp
parent1602421c852d9d7fddbe8c5f014d7861a7848865 (diff)
downloadbcm5719-llvm-e1cfbc79420fee0b71bad62f8d413b68a0eca91e.tar.gz
bcm5719-llvm-e1cfbc79420fee0b71bad62f8d413b68a0eca91e.zip
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 llvm-svn: 278440
Diffstat (limited to 'lldb/source/Target/Process.cpp')
-rw-r--r--lldb/source/Target/Process.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 94e4f961064..e95c8ee7f25 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -442,7 +442,9 @@ ProcessInstanceInfo::DumpAsTableRow (Stream &s, Platform *platform, bool show_ar
}
Error
-ProcessLaunchCommandOptions::SetOptionValue (uint32_t option_idx, const char *option_arg)
+ProcessLaunchCommandOptions::SetOptionValue(uint32_t option_idx,
+ const char *option_arg,
+ ExecutionContext *execution_context)
{
Error error;
const int short_option = m_getopt_table[option_idx].val;
@@ -503,8 +505,14 @@ ProcessLaunchCommandOptions::SetOptionValue (uint32_t option_idx, const char *op
break;
case 'a':
- if (!launch_info.GetArchitecture().SetTriple (option_arg, m_interpreter.GetPlatform(true).get()))
- launch_info.GetArchitecture().SetTriple (option_arg);
+ {
+ TargetSP target_sp = execution_context ?
+ execution_context->GetTargetSP() : TargetSP();
+ PlatformSP platform_sp = target_sp ?
+ target_sp->GetPlatform() : PlatformSP();
+ if (!launch_info.GetArchitecture().SetTriple (option_arg, platform_sp.get()))
+ launch_info.GetArchitecture().SetTriple (option_arg);
+ }
break;
case 'A': // Disable ASLR.
OpenPOWER on IntegriCloud