blob: b14a9a2ccd28ed764b94a0776b3427fdb8fa7a35 [file] [log] [blame]
Raphael Isemann80814282020-01-24 08:23:27 +01001//===-- SystemInitializerFull.cpp -----------------------------------------===//
Zachary Turnere6e2bb32015-03-31 21:03:22 +00002//
Chandler Carruth2946cd72019-01-19 08:50:56 +00003// 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-exception
Zachary Turnere6e2bb32015-03-31 21:03:22 +00006//
7//===----------------------------------------------------------------------===//
8
Alex Langfordd17cd902018-05-25 20:28:16 +00009#include "SystemInitializerFull.h"
Zachary Turner2c1f46d2015-07-30 20:28:07 +000010#include "lldb/API/SBCommandInterpreter.h"
Zachary Turnere6e2bb32015-03-31 21:03:22 +000011#include "lldb/Core/Debugger.h"
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -080012#include "lldb/Core/PluginManager.h"
13#include "lldb/Host/Config.h"
Zachary Turnere6e2bb32015-03-31 21:03:22 +000014#include "lldb/Host/Host.h"
15#include "lldb/Initialization/SystemInitializerCommon.h"
Zachary Turner2c1f46d2015-07-30 20:28:07 +000016#include "lldb/Interpreter/CommandInterpreter.h"
Pavel Labath38d06322017-06-29 14:32:17 +000017#include "lldb/Utility/Timer.h"
Zachary Turnere6e2bb32015-03-31 21:03:22 +000018#include "llvm/Support/TargetSelect.h"
19
Saleem Abdulrasool5a365582019-05-03 23:19:27 +000020#pragma clang diagnostic push
21#pragma clang diagnostic ignored "-Wglobal-constructors"
22#include "llvm/ExecutionEngine/MCJIT.h"
23#pragma clang diagnostic pop
24
Zachary Turnere6e2bb32015-03-31 21:03:22 +000025#include <string>
26
Jonas Devlieghere3e70a912020-02-07 17:58:30 -080027LLDB_PLUGIN_DECLARE(ABIMacOSX_arm64);
28LLDB_PLUGIN_DECLARE(ABISysV_arm64);
29LLDB_PLUGIN_DECLARE(ABIMacOSX_arm);
30LLDB_PLUGIN_DECLARE(ABISysV_arm);
31LLDB_PLUGIN_DECLARE(ABISysV_arc);
32LLDB_PLUGIN_DECLARE(ABISysV_hexagon);
33LLDB_PLUGIN_DECLARE(ABISysV_mips);
34LLDB_PLUGIN_DECLARE(ABISysV_mips64);
35LLDB_PLUGIN_DECLARE(ABISysV_ppc);
36LLDB_PLUGIN_DECLARE(ABISysV_ppc64);
37LLDB_PLUGIN_DECLARE(ABISysV_s390x);
38LLDB_PLUGIN_DECLARE(ABIMacOSX_i386);
39LLDB_PLUGIN_DECLARE(ABISysV_i386);
40LLDB_PLUGIN_DECLARE(ABISysV_x86_64);
41LLDB_PLUGIN_DECLARE(ABIWindows_x86_64);
42LLDB_PLUGIN_DECLARE(ObjectFileBreakpad);
43LLDB_PLUGIN_DECLARE(ObjectFileELF);
44LLDB_PLUGIN_DECLARE(ObjectFileMachO);
45LLDB_PLUGIN_DECLARE(ObjectFilePECOFF);
46LLDB_PLUGIN_DECLARE(ObjectFileWasm);
47LLDB_PLUGIN_DECLARE(ObjectContainerBSDArchive);
48LLDB_PLUGIN_DECLARE(ObjectContainerUniversalMachO);
49LLDB_PLUGIN_DECLARE(ScriptInterpreterNone);
50#if LLDB_ENABLE_PYTHON
51LLDB_PLUGIN_DECLARE(OperatingSystemPython);
52LLDB_PLUGIN_DECLARE(ScriptInterpreterPython);
53#endif
54#if LLDB_ENABLE_LUA
55LLDB_PLUGIN_DECLARE(ScriptInterpreterLua);
56#endif
57LLDB_PLUGIN_DECLARE(PlatformFreeBSD);
58LLDB_PLUGIN_DECLARE(PlatformLinux);
59LLDB_PLUGIN_DECLARE(PlatformNetBSD);
60LLDB_PLUGIN_DECLARE(PlatformOpenBSD);
61LLDB_PLUGIN_DECLARE(PlatformWindows);
62LLDB_PLUGIN_DECLARE(PlatformAndroid);
63LLDB_PLUGIN_DECLARE(PlatformRemoteiOS);
64LLDB_PLUGIN_DECLARE(PlatformMacOSX);
65LLDB_PLUGIN_DECLARE(TypeSystemClang);
66LLDB_PLUGIN_DECLARE(ArchitectureArm);
67LLDB_PLUGIN_DECLARE(ArchitectureMips);
68LLDB_PLUGIN_DECLARE(ArchitecturePPC64);
69LLDB_PLUGIN_DECLARE(DisassemblerLLVMC);
70LLDB_PLUGIN_DECLARE(JITLoaderGDB);
71LLDB_PLUGIN_DECLARE(ProcessElfCore);
72LLDB_PLUGIN_DECLARE(ProcessMachCore);
73LLDB_PLUGIN_DECLARE(ProcessMinidump);
74LLDB_PLUGIN_DECLARE(MemoryHistoryASan);
75LLDB_PLUGIN_DECLARE(InstrumentationRuntimeASan);
76LLDB_PLUGIN_DECLARE(InstrumentationRuntimeTSan);
77LLDB_PLUGIN_DECLARE(InstrumentationRuntimeUBSan);
78LLDB_PLUGIN_DECLARE(InstrumentationRuntimeMainThreadChecker);
79LLDB_PLUGIN_DECLARE(SymbolVendorELF);
80LLDB_PLUGIN_DECLARE(SymbolFileBreakpad);
81LLDB_PLUGIN_DECLARE(SymbolFileDWARF);
82LLDB_PLUGIN_DECLARE(SymbolFilePDB);
83LLDB_PLUGIN_DECLARE(SymbolFileSymtab);
84LLDB_PLUGIN_DECLARE(SymbolVendorWasm);
85LLDB_PLUGIN_DECLARE(UnwindAssemblyInstEmulation);
86LLDB_PLUGIN_DECLARE(UnwindAssembly_x86);
87LLDB_PLUGIN_DECLARE(EmulateInstructionARM);
88LLDB_PLUGIN_DECLARE(EmulateInstructionARM64);
89LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS);
90LLDB_PLUGIN_DECLARE(EmulateInstructionMIPS64);
91LLDB_PLUGIN_DECLARE(EmulateInstructionPPC64);
92LLDB_PLUGIN_DECLARE(SymbolFileDWARFDebugMap);
93LLDB_PLUGIN_DECLARE(ItaniumABILanguageRuntime);
94LLDB_PLUGIN_DECLARE(AppleObjCRuntime);
95LLDB_PLUGIN_DECLARE(SystemRuntimeMacOSX);
96LLDB_PLUGIN_DECLARE(RenderScriptRuntime);
97LLDB_PLUGIN_DECLARE(CPlusPlusLanguage);
98LLDB_PLUGIN_DECLARE(ObjCLanguage);
99LLDB_PLUGIN_DECLARE(ObjCPlusPlusLanguage);
100#if defined(_WIN32)
101LLDB_PLUGIN_DECLARE(ProcessWindows);
102#endif
103#if defined(__FreeBSD__)
104LLDB_PLUGIN_DECLARE(ProcessFreeBSD);
105#endif
106#if defined(__APPLE__)
107LLDB_PLUGIN_DECLARE(SymbolVendorMacOSX);
108LLDB_PLUGIN_DECLARE(ProcessKDP);
109LLDB_PLUGIN_DECLARE(DynamicLoaderDarwinKernel);
110#endif
111LLDB_PLUGIN_DECLARE(StructuredDataDarwinLog);
112LLDB_PLUGIN_DECLARE(PlatformRemoteGDBServer);
113LLDB_PLUGIN_DECLARE(ProcessGDBRemote);
114LLDB_PLUGIN_DECLARE(DynamicLoaderMacOSXDYLD);
115LLDB_PLUGIN_DECLARE(DynamicLoaderMacOS);
116LLDB_PLUGIN_DECLARE(DynamicLoaderPOSIXDYLD);
117LLDB_PLUGIN_DECLARE(DynamicLoaderStatic);
118LLDB_PLUGIN_DECLARE(DynamicLoaderWindowsDYLD);
119
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000120using namespace lldb_private;
121
Kate Stoneb9c1b512016-09-06 20:57:50 +0000122SystemInitializerFull::SystemInitializerFull() {}
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000123
Kate Stoneb9c1b512016-09-06 20:57:50 +0000124SystemInitializerFull::~SystemInitializerFull() {}
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000125
Pavel Labath8865ebb2019-09-26 09:47:32 +0000126#define LLDB_PROCESS_AArch64(op) \
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800127 op(ABIMacOSX_arm64); \
128 op(ABISysV_arm64);
Pavel Labath8865ebb2019-09-26 09:47:32 +0000129#define LLDB_PROCESS_ARM(op) \
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800130 op(ABIMacOSX_arm); \
131 op(ABISysV_arm);
132#define LLDB_PROCESS_ARC(op) op(ABISysV_arc);
133#define LLDB_PROCESS_Hexagon(op) op(ABISysV_hexagon);
Pavel Labath8865ebb2019-09-26 09:47:32 +0000134#define LLDB_PROCESS_Mips(op) \
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800135 op(ABISysV_mips); \
136 op(ABISysV_mips64);
Pavel Labath8865ebb2019-09-26 09:47:32 +0000137#define LLDB_PROCESS_PowerPC(op) \
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800138 op(ABISysV_ppc); \
139 op(ABISysV_ppc64);
140#define LLDB_PROCESS_SystemZ(op) op(ABISysV_s390x);
Pavel Labath8865ebb2019-09-26 09:47:32 +0000141#define LLDB_PROCESS_X86(op) \
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800142 op(ABIMacOSX_i386); \
143 op(ABISysV_i386); \
144 op(ABISysV_x86_64); \
145 op(ABIWindows_x86_64);
Pavel Labath8865ebb2019-09-26 09:47:32 +0000146
147#define LLDB_PROCESS_AMDGPU(op)
Pavel Labathe8f06132019-09-26 17:15:18 +0000148#define LLDB_PROCESS_AVR(op)
Pavel Labath8865ebb2019-09-26 09:47:32 +0000149#define LLDB_PROCESS_BPF(op)
150#define LLDB_PROCESS_Lanai(op)
151#define LLDB_PROCESS_MSP430(op)
152#define LLDB_PROCESS_NVPTX(op)
153#define LLDB_PROCESS_RISCV(op)
154#define LLDB_PROCESS_Sparc(op)
155#define LLDB_PROCESS_WebAssembly(op)
156#define LLDB_PROCESS_XCore(op)
157
Jonas Devlieghere936c6242019-02-21 22:26:16 +0000158llvm::Error SystemInitializerFull::Initialize() {
159 if (auto e = SystemInitializerCommon::Initialize())
Jonas Devlieghere15eacd72018-12-03 17:28:29 +0000160 return e;
Pavel Labathfa3fa5b2018-05-24 12:44:18 +0000161
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800162 LLDB_PLUGIN_INITIALIZE(ObjectFileBreakpad);
163 LLDB_PLUGIN_INITIALIZE(ObjectFileELF);
164 LLDB_PLUGIN_INITIALIZE(ObjectFileMachO);
165 LLDB_PLUGIN_INITIALIZE(ObjectFilePECOFF);
166 LLDB_PLUGIN_INITIALIZE(ObjectFileWasm);
Pavel Labathfa3fa5b2018-05-24 12:44:18 +0000167
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800168 LLDB_PLUGIN_INITIALIZE(ObjectContainerBSDArchive);
169 LLDB_PLUGIN_INITIALIZE(ObjectContainerUniversalMachO);
Saleem Abdulrasoolc7c3cf62019-05-02 18:11:44 +0000170
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800171 LLDB_PLUGIN_INITIALIZE(ScriptInterpreterNone);
Zachary Turner2c1f46d2015-07-30 20:28:07 +0000172
Jonas Devlieghere4e26cf22019-12-13 10:37:33 -0800173#if LLDB_ENABLE_PYTHON
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800174 LLDB_PLUGIN_INITIALIZE(OperatingSystemPython);
Pavel Labatha7760cb2016-03-16 08:48:56 +0000175#endif
Pavel Labatha7760cb2016-03-16 08:48:56 +0000176
Jonas Devlieghere4e26cf22019-12-13 10:37:33 -0800177#if LLDB_ENABLE_PYTHON
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800178 LLDB_PLUGIN_INITIALIZE(ScriptInterpreterPython);
Zachary Turner2c1f46d2015-07-30 20:28:07 +0000179#endif
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000180
Jonas Devlieghere67de89622019-12-07 15:49:35 -0800181#if LLDB_ENABLE_LUA
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800182 LLDB_PLUGIN_INITIALIZE(ScriptInterpreterLua);
Jonas Devlieghere67de89622019-12-07 15:49:35 -0800183#endif
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800184 LLDB_PLUGIN_INITIALIZE(PlatformFreeBSD);
185 LLDB_PLUGIN_INITIALIZE(PlatformLinux);
186 LLDB_PLUGIN_INITIALIZE(PlatformNetBSD);
187 LLDB_PLUGIN_INITIALIZE(PlatformOpenBSD);
188 LLDB_PLUGIN_INITIALIZE(PlatformWindows);
189 LLDB_PLUGIN_INITIALIZE(PlatformAndroid);
190 LLDB_PLUGIN_INITIALIZE(PlatformRemoteiOS);
191 LLDB_PLUGIN_INITIALIZE(PlatformMacOSX);
Pavel Labathf1763532016-06-29 13:58:27 +0000192
Kate Stoneb9c1b512016-09-06 20:57:50 +0000193 // Initialize LLVM and Clang
194 llvm::InitializeAllTargets();
195 llvm::InitializeAllAsmPrinters();
196 llvm::InitializeAllTargetMCs();
197 llvm::InitializeAllDisassemblers();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000198
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800199 LLDB_PLUGIN_INITIALIZE(TypeSystemClang);
Greg Clayton56939cb2015-09-17 22:23:34 +0000200
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800201#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_INITIALIZE)
Pavel Labath8865ebb2019-09-26 09:47:32 +0000202#include "llvm/Config/Targets.def"
Pavel Labath13e37d42017-10-25 21:05:31 +0000203
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800204 LLDB_PLUGIN_INITIALIZE(ArchitectureArm);
205 LLDB_PLUGIN_INITIALIZE(ArchitectureMips);
206 LLDB_PLUGIN_INITIALIZE(ArchitecturePPC64);
Pavel Labath13e37d42017-10-25 21:05:31 +0000207
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800208 LLDB_PLUGIN_INITIALIZE(DisassemblerLLVMC);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000209
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800210 LLDB_PLUGIN_INITIALIZE(JITLoaderGDB);
211 LLDB_PLUGIN_INITIALIZE(ProcessElfCore);
212 LLDB_PLUGIN_INITIALIZE(ProcessMachCore);
213 LLDB_PLUGIN_INITIALIZE(ProcessMinidump);
214 LLDB_PLUGIN_INITIALIZE(MemoryHistoryASan);
215 LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeASan);
216 LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeTSan);
217 LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeUBSan);
218 LLDB_PLUGIN_INITIALIZE(InstrumentationRuntimeMainThreadChecker);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000219
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800220 LLDB_PLUGIN_INITIALIZE(SymbolVendorELF);
221 LLDB_PLUGIN_INITIALIZE(SymbolFileBreakpad);
222 LLDB_PLUGIN_INITIALIZE(SymbolFileDWARF);
223 LLDB_PLUGIN_INITIALIZE(SymbolFilePDB);
224 LLDB_PLUGIN_INITIALIZE(SymbolFileSymtab);
225 LLDB_PLUGIN_INITIALIZE(SymbolVendorWasm);
226 LLDB_PLUGIN_INITIALIZE(UnwindAssemblyInstEmulation);
227 LLDB_PLUGIN_INITIALIZE(UnwindAssembly_x86);
Saleem Abdulrasoole24d8c52019-05-06 19:38:24 +0000228
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800229 LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM);
230 LLDB_PLUGIN_INITIALIZE(EmulateInstructionARM64);
231 LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS);
232 LLDB_PLUGIN_INITIALIZE(EmulateInstructionMIPS64);
233 LLDB_PLUGIN_INITIALIZE(EmulateInstructionPPC64);
Saleem Abdulrasoole24d8c52019-05-06 19:38:24 +0000234
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800235 LLDB_PLUGIN_INITIALIZE(SymbolFileDWARFDebugMap);
236 LLDB_PLUGIN_INITIALIZE(ItaniumABILanguageRuntime);
237 LLDB_PLUGIN_INITIALIZE(AppleObjCRuntime);
238 LLDB_PLUGIN_INITIALIZE(SystemRuntimeMacOSX);
239 LLDB_PLUGIN_INITIALIZE(RenderScriptRuntime);
Ed Maste81b4c5f2016-01-04 01:43:47 +0000240
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800241 LLDB_PLUGIN_INITIALIZE(CPlusPlusLanguage);
242 LLDB_PLUGIN_INITIALIZE(ObjCLanguage);
243 LLDB_PLUGIN_INITIALIZE(ObjCPlusPlusLanguage);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000244
Hafiz Abid Qadeerf6ee79c2016-12-15 15:00:41 +0000245#if defined(_WIN32)
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800246 LLDB_PLUGIN_INITIALIZE(ProcessWindows);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000247#endif
248#if defined(__FreeBSD__)
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800249 LLDB_PLUGIN_INITIALIZE(ProcessFreeBSD);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000250#endif
251#if defined(__APPLE__)
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800252 LLDB_PLUGIN_INITIALIZE(SymbolVendorMacOSX);
253 LLDB_PLUGIN_INITIALIZE(ProcessKDP);
254 LLDB_PLUGIN_INITIALIZE(DynamicLoaderDarwinKernel);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000255#endif
Todd Fiala75930012016-08-19 04:21:48 +0000256
Adrian Prantl05097242018-04-30 16:49:04 +0000257 // This plugin is valid on any host that talks to a Darwin remote. It
258 // shouldn't be limited to __APPLE__.
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800259 LLDB_PLUGIN_INITIALIZE(StructuredDataDarwinLog);
Todd Fiala75930012016-08-19 04:21:48 +0000260
Kate Stoneb9c1b512016-09-06 20:57:50 +0000261 // Platform agnostic plugins
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800262 LLDB_PLUGIN_INITIALIZE(PlatformRemoteGDBServer);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000263
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800264 LLDB_PLUGIN_INITIALIZE(ProcessGDBRemote);
265 LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOSXDYLD);
266 LLDB_PLUGIN_INITIALIZE(DynamicLoaderMacOS);
267 LLDB_PLUGIN_INITIALIZE(DynamicLoaderPOSIXDYLD);
268 LLDB_PLUGIN_INITIALIZE(DynamicLoaderStatic);
269 LLDB_PLUGIN_INITIALIZE(DynamicLoaderWindowsDYLD);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000270
Kate Stoneb9c1b512016-09-06 20:57:50 +0000271 // Scan for any system or user LLDB plug-ins
272 PluginManager::Initialize();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000273
Adrian Prantl05097242018-04-30 16:49:04 +0000274 // The process settings need to know about installed plug-ins, so the
275 // Settings must be initialized
Kate Stoneb9c1b512016-09-06 20:57:50 +0000276 // AFTER PluginManager::Initialize is called.
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000277
Kate Stoneb9c1b512016-09-06 20:57:50 +0000278 Debugger::SettingsInitialize();
Jonas Devlieghere15eacd72018-12-03 17:28:29 +0000279
280 return llvm::Error::success();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000281}
282
Kate Stoneb9c1b512016-09-06 20:57:50 +0000283void SystemInitializerFull::Terminate() {
Pavel Labathf9d16472017-05-15 13:02:37 +0000284 static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
285 Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000286
Kate Stoneb9c1b512016-09-06 20:57:50 +0000287 Debugger::SettingsTerminate();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000288
Kate Stoneb9c1b512016-09-06 20:57:50 +0000289 // Terminate and unload and loaded system or user LLDB plug-ins
290 PluginManager::Terminate();
Greg Clayton56939cb2015-09-17 22:23:34 +0000291
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800292 LLDB_PLUGIN_TERMINATE(TypeSystemClang);
Greg Clayton56939cb2015-09-17 22:23:34 +0000293
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800294 LLDB_PLUGIN_TERMINATE(ArchitectureArm);
295 LLDB_PLUGIN_TERMINATE(ArchitectureMips);
296 LLDB_PLUGIN_TERMINATE(ArchitecturePPC64);
Tatyana Krasnukha98fc5482018-12-13 14:28:25 +0000297
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800298#define LLVM_TARGET(t) LLDB_PROCESS_##t(LLDB_PLUGIN_TERMINATE)
Pavel Labath8865ebb2019-09-26 09:47:32 +0000299#include "llvm/Config/Targets.def"
Pavel Labathd0b44db2019-09-25 13:03:04 +0000300
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800301 LLDB_PLUGIN_TERMINATE(DisassemblerLLVMC);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000302
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800303 LLDB_PLUGIN_TERMINATE(JITLoaderGDB);
304 LLDB_PLUGIN_TERMINATE(ProcessElfCore);
305 LLDB_PLUGIN_TERMINATE(ProcessMachCore);
306 LLDB_PLUGIN_TERMINATE(ProcessMinidump);
307 LLDB_PLUGIN_TERMINATE(MemoryHistoryASan);
Jonas Devliegherefc1e8552020-01-21 15:01:36 -0800308
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800309 LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeASan);
310 LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeTSan);
311 LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeUBSan);
312 LLDB_PLUGIN_TERMINATE(InstrumentationRuntimeMainThreadChecker);
Saleem Abdulrasoole24d8c52019-05-06 19:38:24 +0000313
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800314 LLDB_PLUGIN_TERMINATE(SymbolVendorWasm);
315 LLDB_PLUGIN_TERMINATE(SymbolVendorELF);
316 LLDB_PLUGIN_TERMINATE(SymbolFileBreakpad);
317 LLDB_PLUGIN_TERMINATE(SymbolFileDWARF);
318 LLDB_PLUGIN_TERMINATE(SymbolFilePDB);
319 LLDB_PLUGIN_TERMINATE(SymbolFileSymtab);
320 LLDB_PLUGIN_TERMINATE(UnwindAssembly_x86);
321 LLDB_PLUGIN_TERMINATE(UnwindAssemblyInstEmulation);
Saleem Abdulrasoole24d8c52019-05-06 19:38:24 +0000322
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800323 LLDB_PLUGIN_TERMINATE(EmulateInstructionARM);
324 LLDB_PLUGIN_TERMINATE(EmulateInstructionARM64);
325 LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS);
326 LLDB_PLUGIN_TERMINATE(EmulateInstructionMIPS64);
327 LLDB_PLUGIN_TERMINATE(EmulateInstructionPPC64);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000328
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800329 LLDB_PLUGIN_TERMINATE(SymbolFileDWARFDebugMap);
330 LLDB_PLUGIN_TERMINATE(ItaniumABILanguageRuntime);
331 LLDB_PLUGIN_TERMINATE(AppleObjCRuntime);
332 LLDB_PLUGIN_TERMINATE(SystemRuntimeMacOSX);
333 LLDB_PLUGIN_TERMINATE(RenderScriptRuntime);
334
335 LLDB_PLUGIN_TERMINATE(CPlusPlusLanguage);
336 LLDB_PLUGIN_TERMINATE(ObjCLanguage);
337 LLDB_PLUGIN_TERMINATE(ObjCPlusPlusLanguage);
Ed Maste81b4c5f2016-01-04 01:43:47 +0000338
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000339#if defined(__APPLE__)
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800340 LLDB_PLUGIN_TERMINATE(DynamicLoaderDarwinKernel);
341 LLDB_PLUGIN_TERMINATE(ProcessKDP);
342 LLDB_PLUGIN_TERMINATE(SymbolVendorMacOSX);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000343#endif
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000344
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000345#if defined(__FreeBSD__)
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800346 LLDB_PLUGIN_TERMINATE(ProcessFreeBSD);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000347#endif
Kate Stoneb9c1b512016-09-06 20:57:50 +0000348 Debugger::SettingsTerminate();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000349
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800350 LLDB_PLUGIN_TERMINATE(PlatformRemoteGDBServer);
351 LLDB_PLUGIN_TERMINATE(ProcessGDBRemote);
352 LLDB_PLUGIN_TERMINATE(StructuredDataDarwinLog);
Todd Fiala75930012016-08-19 04:21:48 +0000353
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800354 LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOSXDYLD);
355 LLDB_PLUGIN_TERMINATE(DynamicLoaderMacOS);
356 LLDB_PLUGIN_TERMINATE(DynamicLoaderPOSIXDYLD);
357 LLDB_PLUGIN_TERMINATE(DynamicLoaderStatic);
358 LLDB_PLUGIN_TERMINATE(DynamicLoaderWindowsDYLD);
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000359
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800360 LLDB_PLUGIN_TERMINATE(PlatformFreeBSD);
361 LLDB_PLUGIN_TERMINATE(PlatformLinux);
362 LLDB_PLUGIN_TERMINATE(PlatformNetBSD);
363 LLDB_PLUGIN_TERMINATE(PlatformOpenBSD);
364 LLDB_PLUGIN_TERMINATE(PlatformWindows);
365 LLDB_PLUGIN_TERMINATE(PlatformAndroid);
366 LLDB_PLUGIN_TERMINATE(PlatformRemoteiOS);
367 LLDB_PLUGIN_TERMINATE(PlatformMacOSX);
Pavel Labathf1763532016-06-29 13:58:27 +0000368
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800369 LLDB_PLUGIN_TERMINATE(ObjectFileBreakpad);
370 LLDB_PLUGIN_TERMINATE(ObjectFileELF);
371 LLDB_PLUGIN_TERMINATE(ObjectFileMachO);
372 LLDB_PLUGIN_TERMINATE(ObjectFilePECOFF);
373 LLDB_PLUGIN_TERMINATE(ObjectFileWasm);
Pavel Labathfa3fa5b2018-05-24 12:44:18 +0000374
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800375 LLDB_PLUGIN_TERMINATE(ObjectContainerBSDArchive);
376 LLDB_PLUGIN_TERMINATE(ObjectContainerUniversalMachO);
Saleem Abdulrasoolc7c3cf62019-05-02 18:11:44 +0000377
Raphael Isemannf2d41ad2020-01-17 12:31:15 +0100378#if LLDB_ENABLE_PYTHON
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800379 LLDB_PLUGIN_TERMINATE(OperatingSystemPython);
Raphael Isemannf2d41ad2020-01-17 12:31:15 +0100380#endif
381
382#if LLDB_ENABLE_PYTHON
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800383 LLDB_PLUGIN_TERMINATE(ScriptInterpreterPython);
Raphael Isemannf2d41ad2020-01-17 12:31:15 +0100384#endif
385
386#if LLDB_ENABLE_LUA
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800387 LLDB_PLUGIN_TERMINATE(ScriptInterpreterLua);
Raphael Isemannf2d41ad2020-01-17 12:31:15 +0100388#endif
389
Jonas Devliegherefbb4d1e2020-02-07 14:58:18 -0800390 LLDB_PLUGIN_TERMINATE(ScriptInterpreterNone);
391
Kate Stoneb9c1b512016-09-06 20:57:50 +0000392 // Now shutdown the common parts, in reverse order.
393 SystemInitializerCommon::Terminate();
Zachary Turnere6e2bb32015-03-31 21:03:22 +0000394}