brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · 3478e5d Raw
78 lines · cpp
1//===-- SystemInitializerTest.cpp -------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "SystemInitializerTest.h"10#include "lldb/Core/Debugger.h"11#include "lldb/Core/PluginManager.h"12#include "lldb/Host/Host.h"13#include "lldb/Initialization/SystemInitializerCommon.h"14#include "lldb/Interpreter/CommandInterpreter.h"15#include "lldb/Utility/Timer.h"16#include "llvm/Support/TargetSelect.h"17 18#include <string>19 20#define LLDB_PLUGIN(p) LLDB_PLUGIN_DECLARE(p)21#include "Plugins/Plugins.def"22 23using namespace lldb_private;24 25SystemInitializerTest::SystemInitializerTest()26    : SystemInitializerCommon(nullptr) {}27SystemInitializerTest::~SystemInitializerTest() = default;28 29llvm::Error SystemInitializerTest::Initialize() {30  if (auto e = SystemInitializerCommon::Initialize())31    return e;32 33  // Initialize LLVM and Clang34  llvm::InitializeAllTargets();35  llvm::InitializeAllAsmPrinters();36  llvm::InitializeAllTargetMCs();37  llvm::InitializeAllDisassemblers();38 39#define LLDB_SCRIPT_PLUGIN(p)40#define LLDB_PLUGIN(p) LLDB_PLUGIN_INITIALIZE(p);41#include "Plugins/Plugins.def"42 43  // We ignored all the script interpreter earlier, so initialize44  // ScriptInterpreterNone explicitly.45  LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone);46 47  // Scan for any system or user LLDB plug-ins48  PluginManager::Initialize();49 50  // The process settings need to know about installed plug-ins, so the51  // Settings must be initialized AFTER PluginManager::Initialize is called.52  Debugger::SettingsInitialize();53 54  Debugger::Initialize(nullptr);55 56  return llvm::Error::success();57}58 59void SystemInitializerTest::Terminate() {60  Debugger::Terminate();61 62  Debugger::SettingsTerminate();63 64  // Terminate and unload and loaded system or user LLDB plug-ins65  PluginManager::Terminate();66 67#define LLDB_SCRIPT_PLUGIN(p)68#define LLDB_PLUGIN(p) LLDB_PLUGIN_TERMINATE(p);69#include "Plugins/Plugins.def"70 71  // We ignored all the script interpreter earlier, so terminate72  // ScriptInterpreterNone explicitly.73  LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone);74 75  // Now shutdown the common parts, in reverse order.76  SystemInitializerCommon::Terminate();77}78