diff options
Diffstat (limited to 'source/API/SBDebugger.cpp')
| -rw-r--r-- | source/API/SBDebugger.cpp | 250 | 
1 files changed, 115 insertions, 135 deletions
diff --git a/source/API/SBDebugger.cpp b/source/API/SBDebugger.cpp index df2019f5a46b..1645294b5a3f 100644 --- a/source/API/SBDebugger.cpp +++ b/source/API/SBDebugger.cpp @@ -7,6 +7,10 @@  //  //===----------------------------------------------------------------------===// +// C Includes +// C++ Includes +// Other libraries and framework includes +// Project includes  #include "lldb/API/SBDebugger.h"  #include "lldb/lldb-private.h" @@ -43,13 +47,13 @@  #include "lldb/Target/Process.h"  #include "lldb/Target/TargetList.h" +#include "llvm/ADT/STLExtras.h"  #include "llvm/Support/ManagedStatic.h"  #include "llvm/Support/DynamicLibrary.h"  using namespace lldb;  using namespace lldb_private; -  static llvm::sys::DynamicLibrary  LoadPlugin (const lldb::DebuggerSP &debugger_sp, const FileSpec& spec, Error& error)  { @@ -86,13 +90,6 @@ LoadPlugin (const lldb::DebuggerSP &debugger_sp, const FileSpec& spec, Error& er  static llvm::ManagedStatic<SystemLifetimeManager> g_debugger_lifetime; -SBInputReader::SBInputReader() -{ -} -SBInputReader::~SBInputReader() -{ -} -  SBError  SBInputReader::Initialize(lldb::SBDebugger &sb_debugger,                            unsigned long (*)(void *, lldb::SBInputReader *, lldb::InputReaderAction, char const *, @@ -106,12 +103,37 @@ void  SBInputReader::SetIsDone(bool)  {  } +  bool  SBInputReader::IsActive() const  {      return false;  } +SBDebugger::SBDebugger() = default; + +SBDebugger::SBDebugger(const lldb::DebuggerSP &debugger_sp) : +    m_opaque_sp(debugger_sp) +{ +} + +SBDebugger::SBDebugger(const SBDebugger &rhs) : +    m_opaque_sp (rhs.m_opaque_sp) +{ +} + +SBDebugger::~SBDebugger() = default; + +SBDebugger & +SBDebugger::operator = (const SBDebugger &rhs) +{ +    if (this != &rhs) +    { +        m_opaque_sp = rhs.m_opaque_sp; +    } +    return *this; +} +  void  SBDebugger::Initialize ()  { @@ -147,13 +169,13 @@ SBDebugger::Clear ()  SBDebugger  SBDebugger::Create()  { -    return SBDebugger::Create(false, NULL, NULL); +    return SBDebugger::Create(false, nullptr, nullptr);  }  SBDebugger  SBDebugger::Create(bool source_init_files)  { -    return SBDebugger::Create (source_init_files, NULL, NULL); +    return SBDebugger::Create (source_init_files, nullptr, nullptr);  }  SBDebugger @@ -215,7 +237,7 @@ SBDebugger::Destroy (SBDebugger &debugger)      Debugger::Destroy (debugger.m_opaque_sp); -    if (debugger.m_opaque_sp.get() != NULL) +    if (debugger.m_opaque_sp.get() != nullptr)          debugger.m_opaque_sp.reset();  } @@ -237,42 +259,12 @@ SBDebugger::MemoryPressureDetected ()      ModuleList::RemoveOrphanSharedModules(mandatory);  } -SBDebugger::SBDebugger () : -    m_opaque_sp () -{ -} - -SBDebugger::SBDebugger(const lldb::DebuggerSP &debugger_sp) : -    m_opaque_sp(debugger_sp) -{ -} - -SBDebugger::SBDebugger(const SBDebugger &rhs) : -    m_opaque_sp (rhs.m_opaque_sp) -{ -} - -SBDebugger & -SBDebugger::operator = (const SBDebugger &rhs) -{ -    if (this != &rhs) -    { -        m_opaque_sp = rhs.m_opaque_sp; -    } -    return *this; -} - -SBDebugger::~SBDebugger () -{ -} -  bool  SBDebugger::IsValid() const  { -    return m_opaque_sp.get() != NULL; +    return m_opaque_sp.get() != nullptr;  } -  void  SBDebugger::SetAsync (bool b)  { @@ -281,12 +273,9 @@ SBDebugger::SetAsync (bool b)  }  bool -SBDebugger::GetAsync () +SBDebugger::GetAsync()  { -    if (m_opaque_sp) -        return m_opaque_sp->GetAsyncExecution(); -    else -        return false; +    return (m_opaque_sp ? m_opaque_sp->GetAsyncExecution() : false);  }  void @@ -358,7 +347,7 @@ SBDebugger::GetInputFileHandle ()          if (stream_file_sp)              return stream_file_sp->GetFile().GetStream();      } -    return NULL; +    return nullptr;  }  FILE * @@ -370,20 +359,19 @@ SBDebugger::GetOutputFileHandle ()          if (stream_file_sp)              return stream_file_sp->GetFile().GetStream();      } -    return NULL; +    return nullptr;  }  FILE *  SBDebugger::GetErrorFileHandle ()  {      if (m_opaque_sp) -        if (m_opaque_sp) -        { -            StreamFileSP stream_file_sp (m_opaque_sp->GetErrorFile()); -            if (stream_file_sp) -                return stream_file_sp->GetFile().GetStream(); -        } -    return NULL; +    { +        StreamFileSP stream_file_sp(m_opaque_sp->GetErrorFile()); +        if (stream_file_sp) +            return stream_file_sp->GetFile().GetStream(); +    } +    return nullptr;  }  void @@ -432,12 +420,12 @@ SBDebugger::HandleCommand (const char *command)          sb_interpreter.HandleCommand (command, result, false); -        if (GetErrorFileHandle() != NULL) +        if (GetErrorFileHandle() != nullptr)              result.PutError (GetErrorFileHandle()); -        if (GetOutputFileHandle() != NULL) +        if (GetOutputFileHandle() != nullptr)              result.PutOutput (GetOutputFileHandle()); -        if (m_opaque_sp->GetAsyncExecution() == false) +        if (!m_opaque_sp->GetAsyncExecution())          {              SBProcess process(GetCommandInterpreter().GetProcess ());              ProcessSP process_sp (process.GetSP()); @@ -492,7 +480,7 @@ SBDebugger::HandleProcessEvent (const SBProcess &process, const SBEvent &event,      {          // Drain stdout when we stop just in case we have any bytes          while ((len = process.GetSTDOUT (stdio_buffer, sizeof (stdio_buffer))) > 0) -            if (out != NULL) +            if (out != nullptr)                  ::fwrite (stdio_buffer, 1, len, out);      } @@ -500,7 +488,7 @@ SBDebugger::HandleProcessEvent (const SBProcess &process, const SBEvent &event,      {          // Drain stderr when we stop just in case we have any bytes          while ((len = process.GetSTDERR (stdio_buffer, sizeof (stdio_buffer))) > 0) -            if (err != NULL) +            if (err != nullptr)                  ::fwrite (stdio_buffer, 1, len, err);      } @@ -524,7 +512,6 @@ SBDebugger::GetSourceManager ()      return sb_source_manager;  } -  bool  SBDebugger::GetDefaultArchitecture (char *arch_name, size_t arch_name_len)  { @@ -547,7 +534,6 @@ SBDebugger::GetDefaultArchitecture (char *arch_name, size_t arch_name_len)      return false;  } -  bool  SBDebugger::SetDefaultArchitecture (const char *arch_name)  { @@ -564,12 +550,11 @@ SBDebugger::SetDefaultArchitecture (const char *arch_name)  }  ScriptLanguage -SBDebugger::GetScriptingLanguage (const char *script_language_name) +SBDebugger::GetScriptingLanguage(const char *script_language_name)  { - -    return Args::StringToScriptLanguage (script_language_name, -                                         eScriptLanguageDefault, -                                         NULL); +    return Args::StringToScriptLanguage(script_language_name, +                                        eScriptLanguageDefault, +                                        nullptr);  }  const char * @@ -637,7 +622,7 @@ SBDebugger::CreateTarget (const char *filename,      }      else      { -        sb_error.SetErrorString("invalid target"); +        sb_error.SetErrorString("invalid debugger");      }      Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API)); @@ -659,12 +644,12 @@ SBDebugger::CreateTargetWithFileAndTargetTriple (const char *filename,      if (m_opaque_sp)      {          const bool add_dependent_modules = true; -        Error error (m_opaque_sp->GetTargetList().CreateTarget (*m_opaque_sp,  -                                                                filename,  -                                                                target_triple,  -                                                                add_dependent_modules,  -                                                                NULL, -                                                                target_sp)); +        Error error (m_opaque_sp->GetTargetList().CreateTarget(*m_opaque_sp, +                                                               filename, +                                                               target_triple, +                                                               add_dependent_modules, +                                                               nullptr, +                                                               target_sp));          sb_target.SetSP (target_sp);      } @@ -689,12 +674,12 @@ SBDebugger::CreateTargetWithFileAndArch (const char *filename, const char *arch_          Error error;          const bool add_dependent_modules = true; -        error = m_opaque_sp->GetTargetList().CreateTarget (*m_opaque_sp, -                                                           filename,  -                                                           arch_cstr,  -                                                           add_dependent_modules,  -                                                           NULL,  -                                                           target_sp); +        error = m_opaque_sp->GetTargetList().CreateTarget(*m_opaque_sp, +                                                          filename, +                                                          arch_cstr, +                                                          add_dependent_modules, +                                                          nullptr, +                                                          target_sp);          if (error.Success())          { @@ -720,12 +705,12 @@ SBDebugger::CreateTarget (const char *filename)      {          Error error;          const bool add_dependent_modules = true; -        error = m_opaque_sp->GetTargetList().CreateTarget (*m_opaque_sp, -                                                           filename,  -                                                           NULL, -                                                           add_dependent_modules,  -                                                           NULL, -                                                           target_sp); +        error = m_opaque_sp->GetTargetList().CreateTarget(*m_opaque_sp, +                                                          filename, +                                                          nullptr, +                                                          add_dependent_modules, +                                                          nullptr, +                                                          target_sp);          if (error.Success())          { @@ -767,6 +752,7 @@ SBDebugger::DeleteTarget (lldb::SBTarget &target)      return result;  } +  SBTarget  SBDebugger::GetTargetAtIndex (uint32_t idx)  { @@ -813,7 +799,7 @@ SBDebugger::FindTargetWithFileAndArch (const char *filename, const char *arch_na      {          // No need to lock, the target list is thread safe          ArchSpec arch (arch_name, m_opaque_sp->GetPlatformList().GetSelectedPlatform().get()); -        TargetSP target_sp (m_opaque_sp->GetTargetList().FindTargetWithExecutableAndArchitecture (FileSpec(filename, false), arch_name ? &arch : NULL)); +        TargetSP target_sp (m_opaque_sp->GetTargetList().FindTargetWithExecutableAndArchitecture(FileSpec(filename, false), arch_name ? &arch : nullptr));          sb_target.SetSP (target_sp);      }      return sb_target; @@ -831,7 +817,6 @@ SBDebugger::FindTargetWithLLDBProcess (const ProcessSP &process_sp)      return sb_target;  } -  uint32_t  SBDebugger::GetNumTargets ()  { @@ -1000,6 +985,17 @@ SBDebugger::RunCommandInterpreter (bool auto_handle_events,      }  } +SBError +SBDebugger::RunREPL (lldb::LanguageType language, const char *repl_options) +{ +    SBError error; +    if (m_opaque_sp) +        error.ref() = m_opaque_sp->RunREPL(language, repl_options); +    else +        error.SetErrorString ("invalid debugger"); +    return error; +} +  void  SBDebugger::reset (const DebuggerSP &debugger_sp)  { @@ -1039,10 +1035,7 @@ SBDebugger::FindDebuggerWithID (int id)  const char *  SBDebugger::GetInstanceName()  { -    if (m_opaque_sp) -        return m_opaque_sp->GetInstanceName().AsCString(); -    else -        return NULL; +    return (m_opaque_sp ? m_opaque_sp->GetInstanceName().AsCString() : nullptr);  }  SBError @@ -1098,11 +1091,9 @@ SBDebugger::GetInternalVariableValue (const char *var_name, const char *debugger  }  uint32_t -SBDebugger::GetTerminalWidth () const +SBDebugger::GetTerminalWidth() const  { -    if (m_opaque_sp) -        return m_opaque_sp->GetTerminalWidth (); -    return 0; +    return (m_opaque_sp ? m_opaque_sp->GetTerminalWidth() : 0);  }  void @@ -1122,9 +1113,7 @@ SBDebugger::GetPrompt() const                       static_cast<void*>(m_opaque_sp.get()),                       (m_opaque_sp ? m_opaque_sp->GetPrompt() : "")); -    if (m_opaque_sp) -        return m_opaque_sp->GetPrompt (); -    return 0; +    return (m_opaque_sp ? m_opaque_sp->GetPrompt() : nullptr);  }  void @@ -1133,14 +1122,11 @@ SBDebugger::SetPrompt (const char *prompt)      if (m_opaque_sp)          m_opaque_sp->SetPrompt (prompt);  } -  ScriptLanguage   SBDebugger::GetScriptLanguage() const  { -    if (m_opaque_sp) -        return m_opaque_sp->GetScriptLanguage (); -    return eScriptLanguageNone; +    return (m_opaque_sp ? m_opaque_sp->GetScriptLanguage() : eScriptLanguageNone);  }  void @@ -1153,35 +1139,27 @@ SBDebugger::SetScriptLanguage (ScriptLanguage script_lang)  }  bool -SBDebugger::SetUseExternalEditor (bool value) +SBDebugger::SetUseExternalEditor(bool value)  { -    if (m_opaque_sp) -        return m_opaque_sp->SetUseExternalEditor (value); -    return false; +    return (m_opaque_sp ? m_opaque_sp->SetUseExternalEditor(value) : false);  }  bool -SBDebugger::GetUseExternalEditor () +SBDebugger::GetUseExternalEditor()  { -    if (m_opaque_sp) -        return m_opaque_sp->GetUseExternalEditor (); -    return false; +    return (m_opaque_sp ? m_opaque_sp->GetUseExternalEditor() : false);  }  bool -SBDebugger::SetUseColor (bool value) +SBDebugger::SetUseColor(bool value)  { -    if (m_opaque_sp) -        return m_opaque_sp->SetUseColor (value); -    return false; +    return (m_opaque_sp ? m_opaque_sp->SetUseColor(value) : false);  }  bool -SBDebugger::GetUseColor () const +SBDebugger::GetUseColor() const  { -    if (m_opaque_sp) -        return m_opaque_sp->GetUseColor (); -    return false; +    return (m_opaque_sp ? m_opaque_sp->GetUseColor() : false);  }  bool @@ -1204,12 +1182,9 @@ SBDebugger::GetDescription (SBStream &description)  user_id_t  SBDebugger::GetID()  { -    if (m_opaque_sp) -        return m_opaque_sp->GetID(); -    return LLDB_INVALID_UID; +    return (m_opaque_sp ? m_opaque_sp->GetID() : LLDB_INVALID_UID);  } -  SBError  SBDebugger::SetCurrentPlatform (const char *platform_name_cstr)  { @@ -1267,11 +1242,9 @@ SBDebugger::SetCurrentPlatformSDKRoot (const char *sysroot)  }  bool -SBDebugger::GetCloseInputOnEOF () const +SBDebugger::GetCloseInputOnEOF() const  { -    if (m_opaque_sp) -        return m_opaque_sp->GetCloseInputOnEOF (); -    return false; +    return (m_opaque_sp ? m_opaque_sp->GetCloseInputOnEOF() : false);  }  void @@ -1296,6 +1269,16 @@ SBDebugger::GetCategory (const char* category_name)  }  SBTypeCategory +SBDebugger::GetCategory (lldb::LanguageType lang_type) +{ +    TypeCategoryImplSP category_sp; +    if (DataVisualization::Categories::GetCategory(lang_type, category_sp)) +        return SBTypeCategory(category_sp); +    else +        return SBTypeCategory(); +} + +SBTypeCategory  SBDebugger::CreateCategory (const char* category_name)  {      if (!category_name || *category_name == 0) @@ -1349,7 +1332,7 @@ SBDebugger::GetFormatForType (SBTypeNameSpecifier type_name)  SBTypeSummary  SBDebugger::GetSummaryForType (SBTypeNameSpecifier type_name)  { -    if (type_name.IsValid() == false) +    if (!type_name.IsValid())          return SBTypeSummary();      return SBTypeSummary(DataVisualization::GetSummaryForType(type_name.GetSP()));  } @@ -1358,7 +1341,7 @@ SBDebugger::GetSummaryForType (SBTypeNameSpecifier type_name)  SBTypeFilter  SBDebugger::GetFilterForType (SBTypeNameSpecifier type_name)  { -    if (type_name.IsValid() == false) +    if (!type_name.IsValid())          return SBTypeFilter();      return SBTypeFilter(DataVisualization::GetFilterForType(type_name.GetSP()));  } @@ -1367,7 +1350,7 @@ SBDebugger::GetFilterForType (SBTypeNameSpecifier type_name)  SBTypeSynthetic  SBDebugger::GetSyntheticForType (SBTypeNameSpecifier type_name)  { -    if (type_name.IsValid() == false) +    if (!type_name.IsValid())          return SBTypeSynthetic();      return SBTypeSynthetic(DataVisualization::GetSyntheticForType(type_name.GetSP()));  } @@ -1380,8 +1363,7 @@ SBDebugger::EnableLog (const char *channel, const char **categories)      {          uint32_t log_options = LLDB_LOG_OPTION_PREPEND_TIMESTAMP | LLDB_LOG_OPTION_PREPEND_THREAD_NAME;          StreamString errors; -        return m_opaque_sp->EnableLog (channel, categories, NULL, log_options, errors); -     +        return m_opaque_sp->EnableLog(channel, categories, nullptr, log_options, errors);      }      else          return false; @@ -1395,5 +1377,3 @@ SBDebugger::SetLoggingCallback (lldb::LogOutputCallback log_callback, void *bato          return m_opaque_sp->SetLoggingCallback (log_callback, baton);      }  } - -  | 
