summaryrefslogtreecommitdiffstats
path: root/lldb/source/Commands/CommandObjectFile.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Commands/CommandObjectFile.cpp')
-rw-r--r--lldb/source/Commands/CommandObjectFile.cpp235
1 files changed, 0 insertions, 235 deletions
diff --git a/lldb/source/Commands/CommandObjectFile.cpp b/lldb/source/Commands/CommandObjectFile.cpp
deleted file mode 100644
index 563cbe298dc..00000000000
--- a/lldb/source/Commands/CommandObjectFile.cpp
+++ /dev/null
@@ -1,235 +0,0 @@
-//===-- CommandObjectFile.cpp -----------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CommandObjectFile.h"
-
-// C Includes
-// C++ Includes
-// Other libraries and framework includes
-// Project includes
-#include "lldb/Interpreter/Args.h"
-#include "lldb/Core/Debugger.h"
-#include "lldb/Core/Timer.h"
-#include "lldb/Core/Debugger.h"
-#include "lldb/Interpreter/CommandInterpreter.h"
-#include "lldb/Interpreter/CommandReturnObject.h"
-#include "lldb/Interpreter/CommandCompletions.h"
-#include "lldb/Target/Process.h"
-
-using namespace lldb;
-using namespace lldb_private;
-
-FileOptionGroup::FileOptionGroup() :
- m_arch_str ()
-{
-}
-
-FileOptionGroup::~FileOptionGroup ()
-{
-}
-
-OptionDefinition g_file_option_table[] =
-{
- { LLDB_OPT_SET_1 , false, "arch" , 'a', required_argument, NULL, 0, eArgTypeArchitecture , "Specify the architecture for the target."},
-};
-const uint32_t k_num_file_options = sizeof(g_file_option_table)/sizeof(OptionDefinition);
-
-uint32_t
-FileOptionGroup::GetNumDefinitions ()
-{
- return k_num_file_options;
-}
-
-const OptionDefinition *
-FileOptionGroup::GetDefinitions ()
-{
- return g_file_option_table;
-}
-
-bool
-FileOptionGroup::GetArchitecture (Platform *platform, ArchSpec &arch)
-{
- if (m_arch_str.empty())
- arch.Clear();
- else
- arch.SetTriple(m_arch_str.c_str(), platform);
- return arch.IsValid();
-}
-
-
-Error
-FileOptionGroup::SetOptionValue (CommandInterpreter &interpreter,
- uint32_t option_idx,
- const char *option_arg)
-{
- Error error;
- char short_option = (char) g_file_option_table[option_idx].short_option;
-
- switch (short_option)
- {
- case 'a':
- m_arch_str.assign (option_arg);
- break;
-
- default:
- error.SetErrorStringWithFormat ("Unrecognized option '%c'.\n", short_option);
- break;
- }
-
- return error;
-}
-
-void
-FileOptionGroup::OptionParsingStarting (CommandInterpreter &interpreter)
-{
- m_arch_str.clear();
-}
-
-//-------------------------------------------------------------------------
-// CommandObjectFile
-//-------------------------------------------------------------------------
-
-CommandObjectFile::CommandObjectFile(CommandInterpreter &interpreter) :
- CommandObject (interpreter,
- "file",
- "Set the file to be used as the main executable by the debugger.",
- NULL),
- m_option_group (interpreter),
- m_file_options (),
- m_platform_options(true) // Do include the "--platform" option in the platform settings by passing true
-{
- CommandArgumentEntry arg;
- CommandArgumentData file_arg;
-
- // Define the first (and only) variant of this arg.
- file_arg.arg_type = eArgTypeFilename;
- file_arg.arg_repetition = eArgRepeatPlain;
-
- // There is only one variant this argument could be; put it into the argument entry.
- arg.push_back (file_arg);
-
- // Push the data for the first argument into the m_arguments vector.
- m_arguments.push_back (arg);
-
- m_option_group.Append (&m_file_options, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
- m_option_group.Append (&m_platform_options, LLDB_OPT_SET_ALL, LLDB_OPT_SET_1);
- m_option_group.Finalize();
-}
-
-CommandObjectFile::~CommandObjectFile ()
-{
-}
-
-Options *
-CommandObjectFile::GetOptions ()
-{
- return &m_option_group;
-}
-
-bool
-CommandObjectFile::Execute
-(
- Args& command,
- CommandReturnObject &result
-)
-{
- const char *file_path = command.GetArgumentAtIndex(0);
- Timer scoped_timer(__PRETTY_FUNCTION__, "(lldb) file '%s'", file_path);
- const int argc = command.GetArgumentCount();
- if (argc == 1)
- {
- FileSpec file_spec (file_path, true);
-
- bool select = true;
- PlatformSP platform_sp;
-
- Error error;
-
- if (!m_platform_options.platform_name.empty())
- {
- platform_sp = m_platform_options.CreatePlatformWithOptions(m_interpreter, select, error);
- if (!platform_sp)
- {
- result.AppendError(error.AsCString());
- result.SetStatus (eReturnStatusFailed);
- return false;
- }
- }
- ArchSpec file_arch;
-
- if (!m_file_options.m_arch_str.empty())
- {
- if (!platform_sp)
- platform_sp = m_interpreter.GetDebugger().GetPlatformList().GetSelectedPlatform();
- if (!m_file_options.GetArchitecture(platform_sp.get(), file_arch))
- {
- result.AppendErrorWithFormat("invalid architecture '%s'", m_file_options.m_arch_str.c_str());
- result.SetStatus (eReturnStatusFailed);
- return false;
- }
- }
-
- if (! file_spec.Exists() && !file_spec.ResolveExecutableLocation())
- {
- result.AppendErrorWithFormat ("File '%s' does not exist.\n", file_path);
- result.SetStatus (eReturnStatusFailed);
- return false;
- }
-
- TargetSP target_sp;
- Debugger &debugger = m_interpreter.GetDebugger();
- error = debugger.GetTargetList().CreateTarget (debugger, file_spec, file_arch, true, target_sp);
-
- if (target_sp)
- {
- debugger.GetTargetList().SetSelectedTarget(target_sp.get());
- result.AppendMessageWithFormat ("Current executable set to '%s' (%s).\n", file_path, target_sp->GetArchitecture().GetArchitectureName());
- result.SetStatus (eReturnStatusSuccessFinishNoResult);
- }
- else
- {
- result.AppendError(error.AsCString());
- result.SetStatus (eReturnStatusFailed);
- }
- }
- else
- {
- result.AppendErrorWithFormat("'%s' takes exactly one executable path argument.\n", m_cmd_name.c_str());
- result.SetStatus (eReturnStatusFailed);
- }
- return result.Succeeded();
-
-}
-
-int
-CommandObjectFile::HandleArgumentCompletion
-(
- Args &input,
- int &cursor_index,
- int &cursor_char_position,
- OptionElementVector &opt_element_vector,
- int match_start_point,
- int max_return_elements,
- bool &word_complete,
- StringList &matches
-)
-{
- std::string completion_str (input.GetArgumentAtIndex(cursor_index));
- completion_str.erase (cursor_char_position);
-
- CommandCompletions::InvokeCommonCompletionCallbacks (m_interpreter,
- CommandCompletions::eDiskFileCompletion,
- completion_str.c_str(),
- match_start_point,
- max_return_elements,
- NULL,
- word_complete,
- matches);
- return matches.GetSize();
-}
OpenPOWER on IntegriCloud