JDevlieghere created this revision.
JDevlieghere added a reviewer: labath.
Herald added subscribers: abidh, mgorny.
Herald added a project: LLDB.

As per the discussion on the mailing list 
(http://lists.llvm.org/pipermail/lldb-commits/Week-of-Mon-20190218/048007.html) 
and IRC.


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D58410

Files:
  lldb/include/lldb/API/SBDebugger.h
  lldb/include/lldb/API/SBDefines.h
  lldb/include/lldb/API/SBError.h
  lldb/include/lldb/API/SBFileSpec.h
  lldb/include/lldb/API/SBInitializerOptions.h
  lldb/include/lldb/API/SBReproducer.h
  lldb/include/lldb/Initialization/SystemInitializer.h
  lldb/include/lldb/Initialization/SystemInitializerCommon.h
  lldb/include/lldb/Initialization/SystemLifetimeManager.h
  lldb/include/lldb/Utility/Reproducer.h
  lldb/lldb.xcodeproj/project.pbxproj
  lldb/scripts/interface/SBDebugger.i
  lldb/scripts/interface/SBInitializerOptions.i
  lldb/scripts/lldb.swig
  lldb/source/API/CMakeLists.txt
  lldb/source/API/SBDebugger.cpp
  lldb/source/API/SBInitializerOptions.cpp
  lldb/source/API/SBReproducer.cpp
  lldb/source/API/SystemInitializerFull.cpp
  lldb/source/API/SystemInitializerFull.h
  lldb/source/Initialization/SystemInitializerCommon.cpp
  lldb/source/Initialization/SystemLifetimeManager.cpp
  lldb/source/Utility/Reproducer.cpp
  lldb/tools/driver/Driver.cpp
  lldb/tools/lldb-server/SystemInitializerLLGS.cpp
  lldb/tools/lldb-server/SystemInitializerLLGS.h
  lldb/tools/lldb-server/lldb-server.cpp
  lldb/tools/lldb-test/SystemInitializerTest.cpp
  lldb/tools/lldb-test/SystemInitializerTest.h
  lldb/tools/lldb-test/lldb-test.cpp

Index: lldb/tools/lldb-test/lldb-test.cpp
===================================================================
--- lldb/tools/lldb-test/lldb-test.cpp
+++ lldb/tools/lldb-test/lldb-test.cpp
@@ -963,7 +963,7 @@
 
   SystemLifetimeManager DebuggerLifetime;
   if (auto e = DebuggerLifetime.Initialize(
-          llvm::make_unique<SystemInitializerTest>(), {}, nullptr)) {
+          llvm::make_unique<SystemInitializerTest>(), nullptr)) {
     WithColor::error() << "initialization failed: " << toString(std::move(e))
                        << '\n';
     return 1;
Index: lldb/tools/lldb-test/SystemInitializerTest.h
===================================================================
--- lldb/tools/lldb-test/SystemInitializerTest.h
+++ lldb/tools/lldb-test/SystemInitializerTest.h
@@ -25,7 +25,7 @@
   SystemInitializerTest();
   ~SystemInitializerTest() override;
 
-  llvm::Error Initialize(const InitializerOptions &options) override;
+  llvm::Error Initialize() override;
   void Terminate() override;
 };
 
Index: lldb/tools/lldb-test/SystemInitializerTest.cpp
===================================================================
--- lldb/tools/lldb-test/SystemInitializerTest.cpp
+++ lldb/tools/lldb-test/SystemInitializerTest.cpp
@@ -112,9 +112,8 @@
 
 SystemInitializerTest::~SystemInitializerTest() {}
 
-llvm::Error
-SystemInitializerTest::Initialize(const InitializerOptions &options) {
-  if (auto e = SystemInitializerCommon::Initialize(options))
+llvm::Error SystemInitializerTest::Initialize() {
+  if (auto e = SystemInitializerCommon::Initialize())
     return e;
 
   breakpad::ObjectFileBreakpad::Initialize();
Index: lldb/tools/lldb-server/lldb-server.cpp
===================================================================
--- lldb/tools/lldb-server/lldb-server.cpp
+++ lldb/tools/lldb-server/lldb-server.cpp
@@ -38,7 +38,7 @@
 
 static void initialize() {
   if (auto e = g_debugger_lifetime->Initialize(
-          llvm::make_unique<SystemInitializerLLGS>(), {}, nullptr))
+          llvm::make_unique<SystemInitializerLLGS>(), nullptr))
     llvm::consumeError(std::move(e));
 }
 
Index: lldb/tools/lldb-server/SystemInitializerLLGS.h
===================================================================
--- lldb/tools/lldb-server/SystemInitializerLLGS.h
+++ lldb/tools/lldb-server/SystemInitializerLLGS.h
@@ -14,8 +14,7 @@
 
 class SystemInitializerLLGS : public lldb_private::SystemInitializerCommon {
 public:
-  llvm::Error
-  Initialize(const lldb_private::InitializerOptions &options) override;
+  llvm::Error Initialize() override;
   void Terminate() override;
 };
 
Index: lldb/tools/lldb-server/SystemInitializerLLGS.cpp
===================================================================
--- lldb/tools/lldb-server/SystemInitializerLLGS.cpp
+++ lldb/tools/lldb-server/SystemInitializerLLGS.cpp
@@ -21,9 +21,8 @@
 
 using namespace lldb_private;
 
-llvm::Error
-SystemInitializerLLGS::Initialize(const InitializerOptions &options) {
-  if (auto e = SystemInitializerCommon::Initialize(options))
+llvm::Error SystemInitializerLLGS::Initialize() {
+  if (auto e = SystemInitializerCommon::Initialize())
     return e;
 
   HostObjectFile::Initialize();
Index: lldb/tools/driver/Driver.cpp
===================================================================
--- lldb/tools/driver/Driver.cpp
+++ lldb/tools/driver/Driver.cpp
@@ -13,6 +13,7 @@
 #include "lldb/API/SBDebugger.h"
 #include "lldb/API/SBHostOS.h"
 #include "lldb/API/SBLanguageRuntime.h"
+#include "lldb/API/SBReproducer.h"
 #include "lldb/API/SBStream.h"
 #include "lldb/API/SBStringList.h"
 
@@ -888,26 +889,32 @@
                          << '\n';
   }
 
-  SBInitializerOptions options;
   if (auto *arg = input_args.getLastArg(OPT_capture)) {
     auto arg_value = arg->getValue();
-    options.SetReproducerPath(arg_value);
-    options.SetCaptureReproducer(true);
+    SBError error = SBReproducer::InitializeCapture(arg_value);
+    if (error.Fail()) {
+      WithColor::error() << "reproducer capture failed: " << error.GetCString()
+                         << '\n';
+      return 1;
+    }
   }
 
   if (auto *arg = input_args.getLastArg(OPT_replay)) {
     auto arg_value = arg->getValue();
-    options.SetReplayReproducer(true);
-    options.SetReproducerPath(arg_value);
+    SBError error = SBReproducer::InitializeReplay(arg_value);
+    if (error.Fail()) {
+      WithColor::error() << "reproducer replay failed: " << error.GetCString()
+                         << '\n';
+      return 1;
+    }
   }
 
-  SBError error = SBDebugger::Initialize(options);
+  SBError error = SBDebugger::InitializeWithErrorHandling();
   if (error.Fail()) {
     WithColor::error() << "initialization failed: " << error.GetCString()
                        << '\n';
     return 1;
   }
-
   SBHostOS::ThreadCreated("<lldb.driver.main-thread>");
 
   signal(SIGINT, sigint_handler);
Index: lldb/source/Utility/Reproducer.cpp
===================================================================
--- lldb/source/Utility/Reproducer.cpp
+++ lldb/source/Utility/Reproducer.cpp
@@ -51,6 +51,8 @@
   return Error::success();
 }
 
+bool Reproducer::Initialized() { return InstanceImpl().operator bool(); }
+
 void Reproducer::Terminate() {
   lldbassert(InstanceImpl() && "Already terminated.");
   InstanceImpl().reset();
Index: lldb/source/Initialization/SystemLifetimeManager.cpp
===================================================================
--- lldb/source/Initialization/SystemLifetimeManager.cpp
+++ lldb/source/Initialization/SystemLifetimeManager.cpp
@@ -25,7 +25,7 @@
 
 llvm::Error SystemLifetimeManager::Initialize(
     std::unique_ptr<SystemInitializer> initializer,
-    const InitializerOptions &options, LoadPluginCallbackType plugin_callback) {
+    LoadPluginCallbackType plugin_callback) {
   std::lock_guard<std::recursive_mutex> guard(m_mutex);
   if (!m_initialized) {
     assert(!m_initializer && "Attempting to call "
@@ -34,7 +34,7 @@
     m_initialized = true;
     m_initializer = std::move(initializer);
 
-    if (auto e = m_initializer->Initialize(options))
+    if (auto e = m_initializer->Initialize())
       return e;
 
     Debugger::Initialize(plugin_callback);
Index: lldb/source/Initialization/SystemInitializerCommon.cpp
===================================================================
--- lldb/source/Initialization/SystemInitializerCommon.cpp
+++ lldb/source/Initialization/SystemInitializerCommon.cpp
@@ -41,8 +41,7 @@
 
 SystemInitializerCommon::~SystemInitializerCommon() {}
 
-llvm::Error
-SystemInitializerCommon::Initialize(const InitializerOptions &options) {
+llvm::Error SystemInitializerCommon::Initialize() {
 #if defined(_MSC_VER)
   const char *disable_crash_dialog_var = getenv("LLDB_DISABLE_CRASH_DIALOG");
   if (disable_crash_dialog_var &&
@@ -65,15 +64,12 @@
   }
 #endif
 
-  // Initialize the reproducer.
-  ReproducerMode mode = ReproducerMode::Off;
-  if (options.reproducer_capture)
-    mode = ReproducerMode::Capture;
-  if (options.reproducer_replay)
-    mode = ReproducerMode::Replay;
-
-  if (auto e = Reproducer::Initialize(mode, FileSpec(options.reproducer_path)))
-    return e;
+  // If the reproducer wasn't initialized before, we can safely assume it's
+  // off.
+  if (!Reproducer::Initialized()) {
+    if (auto e = Reproducer::Initialize(ReproducerMode::Off, llvm::None))
+      return e;
+  }
 
   // Initialize the file system.
   auto &r = repro::Reproducer::Instance();
Index: lldb/source/API/SystemInitializerFull.h
===================================================================
--- lldb/source/API/SystemInitializerFull.h
+++ lldb/source/API/SystemInitializerFull.h
@@ -25,7 +25,7 @@
   SystemInitializerFull();
   ~SystemInitializerFull() override;
 
-  llvm::Error Initialize(const InitializerOptions &options) override;
+  llvm::Error Initialize() override;
   void Terminate() override;
 
 private:
Index: lldb/source/API/SystemInitializerFull.cpp
===================================================================
--- lldb/source/API/SystemInitializerFull.cpp
+++ lldb/source/API/SystemInitializerFull.cpp
@@ -265,9 +265,8 @@
 
 SystemInitializerFull::~SystemInitializerFull() {}
 
-llvm::Error
-SystemInitializerFull::Initialize(const InitializerOptions &options) {
-  if (auto e = SystemInitializerCommon::Initialize(options))
+llvm::Error SystemInitializerFull::Initialize() {
+  if (auto e = SystemInitializerCommon::Initialize())
     return e;
 
   breakpad::ObjectFileBreakpad::Initialize();
Index: lldb/source/API/SBReproducer.cpp
===================================================================
--- lldb/source/API/SBReproducer.cpp
+++ lldb/source/API/SBReproducer.cpp
@@ -45,6 +45,20 @@
   return true;
 }
 
+SBError SBReproducer::InitializeCapture(const char *path) {
+  SBError error;
+  if (auto e = Reproducer::Initialize(ReproducerMode::Capture, FileSpec(path)))
+    error.SetError(Status(std::move(e)));
+  return error;
+}
+
+SBError SBReproducer::InitializeReplay(const char *path) {
+  SBError error;
+  if (auto e = Reproducer::Initialize(ReproducerMode::Replay, FileSpec(path)))
+    error.SetError(Status(std::move(e)));
+  return error;
+}
+
 char lldb_private::repro::SBProvider::ID = 0;
 const char *SBInfo::name = "sbapi";
 const char *SBInfo::file = "sbapi.bin";
Index: lldb/source/API/SBInitializerOptions.cpp
===================================================================
--- lldb/source/API/SBInitializerOptions.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-//===-- SBInitializerOptions.cpp --------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include "lldb/API/SBInitializerOptions.h"
-#include "lldb/Initialization/SystemInitializer.h"
-
-using namespace lldb;
-using namespace lldb_private;
-
-SBInitializerOptions::SBInitializerOptions(const SBInitializerOptions &rhs) {
-  m_opaque_up.reset(new InitializerOptions());
-  *(m_opaque_up.get()) = rhs.ref();
-}
-
-const SBInitializerOptions &SBInitializerOptions::
-operator=(const SBInitializerOptions &rhs) {
-  if (this != &rhs) {
-    this->ref() = rhs.ref();
-  }
-  return *this;
-}
-
-SBInitializerOptions::~SBInitializerOptions() {}
-
-SBInitializerOptions::SBInitializerOptions() {
-  m_opaque_up.reset(new InitializerOptions());
-}
-
-void SBInitializerOptions::SetCaptureReproducer(bool b) {
-  m_opaque_up->reproducer_capture = b;
-}
-
-void SBInitializerOptions::SetReplayReproducer(bool b) {
-  m_opaque_up->reproducer_replay = b;
-}
-
-void SBInitializerOptions::SetReproducerPath(const char *path) {
-  m_opaque_up->reproducer_path = path;
-}
-
-InitializerOptions &SBInitializerOptions::ref() const {
-  return *(m_opaque_up.get());
-}
Index: lldb/source/API/SBDebugger.cpp
===================================================================
--- lldb/source/API/SBDebugger.cpp
+++ lldb/source/API/SBDebugger.cpp
@@ -124,11 +124,10 @@
 }
 
 void SBDebugger::Initialize() {
-  SBInitializerOptions options;
-  SBDebugger::Initialize(options);
+  SBError ignored = SBDebugger::InitializeWithErrorHandling();
 }
 
-lldb::SBError SBDebugger::Initialize(SBInitializerOptions &options) {
+lldb::SBError SBDebugger::InitializeWithErrorHandling() {
   Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_API));
 
   if (log)
@@ -136,8 +135,7 @@
 
   SBError error;
   if (auto e = g_debugger_lifetime->Initialize(
-          llvm::make_unique<SystemInitializerFull>(), *options.m_opaque_up,
-          LoadPlugin)) {
+          llvm::make_unique<SystemInitializerFull>(), LoadPlugin)) {
     error.SetError(Status(std::move(e)));
   }
   return error;
Index: lldb/source/API/CMakeLists.txt
===================================================================
--- lldb/source/API/CMakeLists.txt
+++ lldb/source/API/CMakeLists.txt
@@ -34,7 +34,6 @@
   SBFrame.cpp
   SBFunction.cpp
   SBHostOS.cpp
-  SBInitializerOptions.cpp
   SBInstruction.cpp
   SBInstructionList.cpp
   SBLanguageRuntime.cpp
Index: lldb/scripts/lldb.swig
===================================================================
--- lldb/scripts/lldb.swig
+++ lldb/scripts/lldb.swig
@@ -202,7 +202,6 @@
 %include "./interface/SBFrame.i"
 %include "./interface/SBFunction.i"
 %include "./interface/SBHostOS.i"
-%include "./interface/SBInitializerOptions.i"
 %include "./interface/SBInstruction.i"
 %include "./interface/SBInstructionList.i"
 %include "./interface/SBLanguageRuntime.i"
Index: lldb/scripts/interface/SBInitializerOptions.i
===================================================================
--- lldb/scripts/interface/SBInitializerOptions.i
+++ /dev/null
@@ -1,23 +0,0 @@
-//===-- SWIG Interface for SBInitializerOptions -----------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-namespace lldb {
-
-class SBInitializerOptions
-{
-public:
-  SBInitializerOptions ();
-  SBInitializerOptions (const lldb::SBInitializerOptions &rhs);
-  ~SBInitializerOptions();
-
-  void SetCaptureReproducer(bool b);
-  void SetReplayReproducer(bool b);
-  void SetReproducerPath(const char* path);
-};
-
-} // namespace lldb
Index: lldb/scripts/interface/SBDebugger.i
===================================================================
--- lldb/scripts/interface/SBDebugger.i
+++ lldb/scripts/interface/SBDebugger.i
@@ -122,8 +122,8 @@
     static void
     Initialize();
 
-    static void
-    Initialize(lldb::SBInitializerOptions& options);
+    static SBError
+    InitializeWithErrorHandling();
 
     static void
     Terminate();
Index: lldb/lldb.xcodeproj/project.pbxproj
===================================================================
--- lldb/lldb.xcodeproj/project.pbxproj
+++ lldb/lldb.xcodeproj/project.pbxproj
@@ -793,8 +793,6 @@
 		26DE205311618FAC00A093E2 /* SBFunction.h in Headers */ = {isa = PBXBuildFile; fileRef = 26DE205211618FAC00A093E2 /* SBFunction.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		9A3576AA116E9AC700E8ED2F /* SBHostOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A3576A9116E9AC700E8ED2F /* SBHostOS.cpp */; };
 		9A3576A8116E9AB700E8ED2F /* SBHostOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A3576A7116E9AB700E8ED2F /* SBHostOS.h */; settings = {ATTRIBUTES = (Public, ); }; };
-		AFB2F2F621B71AF30078DEF1 /* SBInitializerOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AFB2F2F421B71AE90078DEF1 /* SBInitializerOptions.cpp */; };
-		4C38996D21BA11CA002BAEF4 /* SBInitializerOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C38996C21BA11CA002BAEF4 /* SBInitializerOptions.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		9AC703AF117675410086C050 /* SBInstruction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703AE117675410086C050 /* SBInstruction.cpp */; };
 		9AC7038E117674FB0086C050 /* SBInstruction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AC7038D117674EB0086C050 /* SBInstruction.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		9AC703B1117675490086C050 /* SBInstructionList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AC703B0117675490086C050 /* SBInstructionList.cpp */; };
@@ -2801,8 +2799,6 @@
 		9A3576A9116E9AC700E8ED2F /* SBHostOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBHostOS.cpp; path = source/API/SBHostOS.cpp; sourceTree = "<group>"; };
 		9A3576A7116E9AB700E8ED2F /* SBHostOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBHostOS.h; path = include/lldb/API/SBHostOS.h; sourceTree = "<group>"; };
 		2611FF00142D83060017FEA3 /* SBHostOS.i */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c.preprocessed; path = SBHostOS.i; sourceTree = "<group>"; };
-		AFB2F2F421B71AE90078DEF1 /* SBInitializerOptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBInitializerOptions.cpp; path = source/API/SBInitializerOptions.cpp; sourceTree = "<group>"; };
-		4C38996C21BA11CA002BAEF4 /* SBInitializerOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBInitializerOptions.h; path = include/lldb/API/SBInitializerOptions.h; sourceTree = "<group>"; };
 		9AC703AE117675410086C050 /* SBInstruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBInstruction.cpp; path = source/API/SBInstruction.cpp; sourceTree = "<group>"; };
 		9AC7038D117674EB0086C050 /* SBInstruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBInstruction.h; path = include/lldb/API/SBInstruction.h; sourceTree = "<group>"; };
 		2611FF02142D83060017FEA3 /* SBInstruction.i */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c.preprocessed; path = SBInstruction.i; sourceTree = "<group>"; };
@@ -4362,8 +4358,6 @@
 				26DE205C1161901400A093E2 /* SBFunction.cpp */,
 				9A3576A7116E9AB700E8ED2F /* SBHostOS.h */,
 				9A3576A9116E9AC700E8ED2F /* SBHostOS.cpp */,
-				AFB2F2F421B71AE90078DEF1 /* SBInitializerOptions.cpp */,
-				4C38996C21BA11CA002BAEF4 /* SBInitializerOptions.h */,
 				9AC7038D117674EB0086C050 /* SBInstruction.h */,
 				9AC703AE117675410086C050 /* SBInstruction.cpp */,
 				9AC7038F117675270086C050 /* SBInstructionList.h */,
@@ -7079,7 +7073,6 @@
 				4C56543519D2297A002E9C44 /* SBThreadPlan.h in Headers */,
 				263C493A178B50CF0070F12D /* SBModuleSpec.h in Headers */,
 				2617447A11685869005ADD65 /* SBType.h in Headers */,
-				4C38996D21BA11CA002BAEF4 /* SBInitializerOptions.h in Headers */,
 				9475C18914E5EA08001BFC6D /* SBTypeCategory.h in Headers */,
 				941BCC7F14E48C4000BB969C /* SBTypeFilter.h in Headers */,
 				941BCC8014E48C4000BB969C /* SBTypeFormat.h in Headers */,
@@ -7902,7 +7895,6 @@
 				26680336116005EF008E1FE4 /* SBBreakpointLocation.cpp in Sources */,
 				26680337116005F1008E1FE4 /* SBBreakpoint.cpp in Sources */,
 				26DE204511618ADA00A093E2 /* SBAddress.cpp in Sources */,
-				AFB2F2F621B71AF30078DEF1 /* SBInitializerOptions.cpp in Sources */,
 				26DE204711618AED00A093E2 /* SBSymbolContext.cpp in Sources */,
 				26DE204D11618E7A00A093E2 /* SBModule.cpp in Sources */,
 				26DE205D1161901400A093E2 /* SBFunction.cpp in Sources */,
Index: lldb/include/lldb/Utility/Reproducer.h
===================================================================
--- lldb/include/lldb/Utility/Reproducer.h
+++ lldb/include/lldb/Utility/Reproducer.h
@@ -201,6 +201,7 @@
   static Reproducer &Instance();
   static llvm::Error Initialize(ReproducerMode mode,
                                 llvm::Optional<FileSpec> root);
+  static bool Initialized();
   static void Terminate();
 
   Reproducer() = default;
Index: lldb/include/lldb/Initialization/SystemLifetimeManager.h
===================================================================
--- lldb/include/lldb/Initialization/SystemLifetimeManager.h
+++ lldb/include/lldb/Initialization/SystemLifetimeManager.h
@@ -24,7 +24,6 @@
   ~SystemLifetimeManager();
 
   llvm::Error Initialize(std::unique_ptr<SystemInitializer> initializer,
-                         const InitializerOptions &options,
                          LoadPluginCallbackType plugin_callback);
   void Terminate();
 
Index: lldb/include/lldb/Initialization/SystemInitializerCommon.h
===================================================================
--- lldb/include/lldb/Initialization/SystemInitializerCommon.h
+++ lldb/include/lldb/Initialization/SystemInitializerCommon.h
@@ -27,7 +27,7 @@
   SystemInitializerCommon();
   ~SystemInitializerCommon() override;
 
-  llvm::Error Initialize(const InitializerOptions &options) override;
+  llvm::Error Initialize() override;
   void Terminate() override;
 };
 
Index: lldb/include/lldb/Initialization/SystemInitializer.h
===================================================================
--- lldb/include/lldb/Initialization/SystemInitializer.h
+++ lldb/include/lldb/Initialization/SystemInitializer.h
@@ -15,18 +15,12 @@
 
 namespace lldb_private {
 
-struct InitializerOptions {
-  bool reproducer_capture = false;
-  bool reproducer_replay = false;
-  std::string reproducer_path;
-};
-
 class SystemInitializer {
 public:
   SystemInitializer();
   virtual ~SystemInitializer();
 
-  virtual llvm::Error Initialize(const InitializerOptions &options) = 0;
+  virtual llvm::Error Initialize() = 0;
   virtual void Terminate() = 0;
 };
 }
Index: lldb/include/lldb/API/SBReproducer.h
===================================================================
--- lldb/include/lldb/API/SBReproducer.h
+++ lldb/include/lldb/API/SBReproducer.h
@@ -9,13 +9,15 @@
 #ifndef LLDB_API_SBREPRODUCER_H
 #define LLDB_API_SBREPRODUCER_H
 
-#include "lldb/lldb-defines.h"
+#include "lldb/API/SBDefines.h"
 
 namespace lldb {
 
 class LLDB_API SBReproducer {
 public:
   static bool Replay();
+  static lldb::SBError InitializeCapture(const char *path);
+  static lldb::SBError InitializeReplay(const char *path);
 };
 
 } // namespace lldb
Index: lldb/include/lldb/API/SBInitializerOptions.h
===================================================================
--- lldb/include/lldb/API/SBInitializerOptions.h
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- SBInitializerOptions.h ----------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLDB_SBInitializerOptuions_h_
-#define LLDB_SBInitializerOptuions_h_
-
-#include "lldb/API/SBDefines.h"
-#include "lldb/API/SBFileSpec.h"
-
-namespace lldb_private {
-struct InitializerOptions;
-}
-
-namespace lldb {
-
-class LLDB_API SBInitializerOptions {
-public:
-  SBInitializerOptions();
-  SBInitializerOptions(const lldb::SBInitializerOptions &rhs);
-  ~SBInitializerOptions();
-  const SBInitializerOptions &operator=(const lldb::SBInitializerOptions &rhs);
-
-  void SetCaptureReproducer(bool b);
-  void SetReplayReproducer(bool b);
-  void SetReproducerPath(const char *path);
-
-  lldb_private::InitializerOptions &ref() const;
-
-private:
-  friend class SBDebugger;
-
-  std::unique_ptr<lldb_private::InitializerOptions> m_opaque_up;
-};
-
-} // namespace lldb
-
-#endif // LLDB_SBInitializerOptuions_h_
Index: lldb/include/lldb/API/SBFileSpec.h
===================================================================
--- lldb/include/lldb/API/SBFileSpec.h
+++ lldb/include/lldb/API/SBFileSpec.h
@@ -58,7 +58,6 @@
   friend class SBDeclaration;
   friend class SBFileSpecList;
   friend class SBHostOS;
-  friend class SBInitializerOptions;
   friend class SBLaunchInfo;
   friend class SBLineEntry;
   friend class SBModule;
Index: lldb/include/lldb/API/SBError.h
===================================================================
--- lldb/include/lldb/API/SBError.h
+++ lldb/include/lldb/API/SBError.h
@@ -51,22 +51,23 @@
   bool GetDescription(lldb::SBStream &description);
 
 protected:
+  friend class SBBreakpoint;
+  friend class SBBreakpointLocation;
+  friend class SBBreakpointName;
   friend class SBCommandReturnObject;
+  friend class SBCommunication;
   friend class SBData;
   friend class SBDebugger;
-  friend class SBCommunication;
   friend class SBHostOS;
   friend class SBPlatform;
   friend class SBProcess;
+  friend class SBReproducer;
   friend class SBStructuredData;
+  friend class SBTarget;
   friend class SBThread;
   friend class SBTrace;
-  friend class SBTarget;
   friend class SBValue;
   friend class SBWatchpoint;
-  friend class SBBreakpoint;
-  friend class SBBreakpointLocation;
-  friend class SBBreakpointName;
 
   lldb_private::Status *get();
 
Index: lldb/include/lldb/API/SBDefines.h
===================================================================
--- lldb/include/lldb/API/SBDefines.h
+++ lldb/include/lldb/API/SBDefines.h
@@ -50,7 +50,6 @@
 class LLDB_API SBFrame;
 class LLDB_API SBFunction;
 class LLDB_API SBHostOS;
-class LLDB_API SBInitializerOptions;
 class LLDB_API SBInstruction;
 class LLDB_API SBInstructionList;
 class LLDB_API SBLanguageRuntime;
Index: lldb/include/lldb/API/SBDebugger.h
===================================================================
--- lldb/include/lldb/API/SBDebugger.h
+++ lldb/include/lldb/API/SBDebugger.h
@@ -12,7 +12,6 @@
 #include <stdio.h>
 
 #include "lldb/API/SBDefines.h"
-#include "lldb/API/SBInitializerOptions.h"
 #include "lldb/API/SBPlatform.h"
 
 namespace lldb {
@@ -45,7 +44,8 @@
   lldb::SBDebugger &operator=(const lldb::SBDebugger &rhs);
 
   static void Initialize();
-  static lldb::SBError Initialize(SBInitializerOptions &options);
+
+  static lldb::SBError InitializeWithErrorHandling();
 
   static void Terminate();
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to