Skip to content

Commit 0d4e76c

Browse files
committed
Customized using SystemInitializer.
1 parent 590d5b4 commit 0d4e76c

14 files changed

+32
-60
lines changed

lldb/include/lldb/Initialization/SystemInitializer.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#ifndef LLDB_INITIALIZATION_SYSTEMINITIALIZER_H
1010
#define LLDB_INITIALIZATION_SYSTEMINITIALIZER_H
1111

12+
#include "lldb/lldb-private-types.h"
1213
#include "llvm/Support/Error.h"
1314

1415
#include <string>
@@ -20,7 +21,7 @@ class SystemInitializer {
2021
SystemInitializer();
2122
virtual ~SystemInitializer();
2223

23-
virtual llvm::Error Initialize() = 0;
24+
virtual llvm::Error Initialize(LoadPluginCallbackType plugin_callback) = 0;
2425
virtual void Terminate() = 0;
2526
};
2627
}

lldb/include/lldb/Initialization/SystemInitializerCommon.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class SystemInitializerCommon : public SystemInitializer {
2626
SystemInitializerCommon(HostInfo::SharedLibraryDirectoryHelper *helper);
2727
~SystemInitializerCommon() override;
2828

29-
llvm::Error Initialize() override;
29+
llvm::Error Initialize(LoadPluginCallbackType plugin_callback) override;
3030
void Terminate() override;
3131

3232
private:

lldb/include/lldb/Initialization/SystemLifetimeManager.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace lldb_private {
2121
class SystemLifetimeManager {
2222
public:
2323
SystemLifetimeManager();
24-
virtual ~SystemLifetimeManager();
24+
~SystemLifetimeManager();
2525

2626
llvm::Error Initialize(std::unique_ptr<SystemInitializer> initializer,
2727
LoadPluginCallbackType plugin_callback);
@@ -32,9 +32,6 @@ class SystemLifetimeManager {
3232
std::unique_ptr<SystemInitializer> m_initializer;
3333
bool m_initialized = false;
3434

35-
virtual void InitializeDebugger(LoadPluginCallbackType plugin_callback) {};
36-
virtual void TerminateDebugger() {};
37-
3835
// Noncopyable.
3936
SystemLifetimeManager(const SystemLifetimeManager &other) = delete;
4037
SystemLifetimeManager &operator=(const SystemLifetimeManager &other) = delete;

lldb/include/lldb/Initialization/SystemLifetimeManagerDbg.h

Lines changed: 0 additions & 36 deletions
This file was deleted.

lldb/source/API/SBDebugger.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
#include "lldb/Host/Config.h"
4545
#include "lldb/Host/StreamFile.h"
4646
#include "lldb/Host/XML.h"
47-
#include "lldb/Initialization/SystemLifetimeManagerDbg.h"
47+
#include "lldb/Initialization/SystemLifetimeManager.h"
4848
#include "lldb/Interpreter/CommandInterpreter.h"
4949
#include "lldb/Interpreter/OptionArgParser.h"
5050
#include "lldb/Interpreter/OptionGroupPlatform.h"
@@ -66,7 +66,7 @@
6666
using namespace lldb;
6767
using namespace lldb_private;
6868

69-
static llvm::ManagedStatic<SystemLifetimeManagerDbg> g_debugger_lifetime;
69+
static llvm::ManagedStatic<SystemLifetimeManager> g_debugger_lifetime;
7070

7171
SBError SBInputReader::Initialize(
7272
lldb::SBDebugger &sb_debugger,

lldb/source/API/SystemInitializerFull.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ SystemInitializerFull::SystemInitializerFull()
4949
: SystemInitializerCommon(g_shlib_dir_helper) {}
5050
SystemInitializerFull::~SystemInitializerFull() = default;
5151

52-
llvm::Error SystemInitializerFull::Initialize() {
53-
llvm::Error error = SystemInitializerCommon::Initialize();
52+
llvm::Error
53+
SystemInitializerFull::Initialize(LoadPluginCallbackType plugin_callback) {
54+
llvm::Error error = SystemInitializerCommon::Initialize(plugin_callback);
5455
if (error)
5556
return error;
5657

@@ -86,10 +87,14 @@ llvm::Error SystemInitializerFull::Initialize() {
8687

8788
LLDB_LOG(GetLog(SystemLog::System), "{0}", GetVersion());
8889

90+
Debugger::Initialize(plugin_callback);
91+
8992
return llvm::Error::success();
9093
}
9194

9295
void SystemInitializerFull::Terminate() {
96+
Debugger::Terminate();
97+
9398
Debugger::SettingsTerminate();
9499

95100
// Terminate plug-ins in core LLDB.

lldb/source/API/SystemInitializerFull.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class SystemInitializerFull : public SystemInitializerCommon {
2323
SystemInitializerFull();
2424
~SystemInitializerFull() override;
2525

26-
llvm::Error Initialize() override;
26+
llvm::Error Initialize(LoadPluginCallbackType plugin_callback) override;
2727
void Terminate() override;
2828
};
2929

lldb/source/Initialization/SystemInitializerCommon.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ SystemInitializerCommon::SystemInitializerCommon(
4141

4242
SystemInitializerCommon::~SystemInitializerCommon() = default;
4343

44-
llvm::Error SystemInitializerCommon::Initialize() {
44+
llvm::Error
45+
SystemInitializerCommon::Initialize(LoadPluginCallbackType plugin_callback) {
4546
#if defined(_WIN32)
4647
const char *disable_crash_dialog_var = getenv("LLDB_DISABLE_CRASH_DIALOG");
4748
if (disable_crash_dialog_var &&

lldb/source/Initialization/SystemLifetimeManager.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,8 @@ llvm::Error SystemLifetimeManager::Initialize(
3232
m_initialized = true;
3333
m_initializer = std::move(initializer);
3434

35-
if (auto e = m_initializer->Initialize())
35+
if (auto e = m_initializer->Initialize(plugin_callback))
3636
return e;
37-
38-
InitializeDebugger(plugin_callback);
3937
}
4038

4139
return llvm::Error::success();
@@ -45,7 +43,6 @@ void SystemLifetimeManager::Terminate() {
4543
std::lock_guard<std::recursive_mutex> guard(m_mutex);
4644

4745
if (m_initialized) {
48-
TerminateDebugger();
4946
m_initializer->Terminate();
5047

5148
m_initializer.reset();

lldb/tools/lldb-server/SystemInitializerLLGS.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ using HostObjectFile = ObjectFileELF;
5656

5757
using namespace lldb_private;
5858

59-
llvm::Error SystemInitializerLLGS::Initialize() {
60-
if (auto e = SystemInitializerCommon::Initialize())
59+
llvm::Error
60+
SystemInitializerLLGS::Initialize(LoadPluginCallbackType plugin_callback) {
61+
if (auto e = SystemInitializerCommon::Initialize(plugin_callback))
6162
return e;
6263

6364
HostObjectFile::Initialize();

lldb/tools/lldb-server/SystemInitializerLLGS.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ class SystemInitializerLLGS : public lldb_private::SystemInitializerCommon {
1616
public:
1717
SystemInitializerLLGS() : SystemInitializerCommon(nullptr) {}
1818

19-
llvm::Error Initialize() override;
19+
llvm::Error
20+
Initialize(lldb_private::LoadPluginCallbackType plugin_callback) override;
2021
void Terminate() override;
2122
};
2223

lldb/tools/lldb-test/SystemInitializerTest.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ SystemInitializerTest::SystemInitializerTest()
2626
: SystemInitializerCommon(nullptr) {}
2727
SystemInitializerTest::~SystemInitializerTest() = default;
2828

29-
llvm::Error SystemInitializerTest::Initialize() {
30-
if (auto e = SystemInitializerCommon::Initialize())
29+
llvm::Error
30+
SystemInitializerTest::Initialize(LoadPluginCallbackType plugin_callback) {
31+
if (auto e = SystemInitializerCommon::Initialize(plugin_callback))
3132
return e;
3233

3334
// Initialize LLVM and Clang
@@ -51,10 +52,14 @@ llvm::Error SystemInitializerTest::Initialize() {
5152
// Settings must be initialized AFTER PluginManager::Initialize is called.
5253
Debugger::SettingsInitialize();
5354

55+
Debugger::Initialize(plugin_callback);
56+
5457
return llvm::Error::success();
5558
}
5659

5760
void SystemInitializerTest::Terminate() {
61+
Debugger::Terminate();
62+
5863
Debugger::SettingsTerminate();
5964

6065
// Terminate and unload and loaded system or user LLDB plug-ins

lldb/tools/lldb-test/SystemInitializerTest.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class SystemInitializerTest : public SystemInitializerCommon {
2323
SystemInitializerTest();
2424
~SystemInitializerTest() override;
2525

26-
llvm::Error Initialize() override;
26+
llvm::Error Initialize(LoadPluginCallbackType plugin_callback) override;
2727
void Terminate() override;
2828
};
2929

lldb/tools/lldb-test/lldb-test.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#include "lldb/Core/Module.h"
1818
#include "lldb/Core/Section.h"
1919
#include "lldb/Expression/IRMemoryMap.h"
20-
#include "lldb/Initialization/SystemLifetimeManagerDbg.h"
20+
#include "lldb/Initialization/SystemLifetimeManager.h"
2121
#include "lldb/Interpreter/CommandInterpreter.h"
2222
#include "lldb/Interpreter/CommandReturnObject.h"
2323
#include "lldb/Symbol/CompileUnit.h"
@@ -1245,7 +1245,7 @@ int main(int argc, const char *argv[]) {
12451245

12461246
cl::ParseCommandLineOptions(argc, argv, "LLDB Testing Utility\n");
12471247

1248-
SystemLifetimeManagerDbg DebuggerLifetime;
1248+
SystemLifetimeManager DebuggerLifetime;
12491249
if (auto e = DebuggerLifetime.Initialize(
12501250
std::make_unique<SystemInitializerTest>(), nullptr)) {
12511251
WithColor::error() << "initialization failed: " << toString(std::move(e))

0 commit comments

Comments
 (0)