SystemInitializerFull.cpp revision 360784
1//===-- SystemInitializerFull.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-exception 6// 7//===----------------------------------------------------------------------===// 8 9#include "SystemInitializerFull.h" 10#include "lldb/API/SBCommandInterpreter.h" 11#include "lldb/Host/Config.h" 12 13#if LLDB_ENABLE_PYTHON 14#include "Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h" 15#endif 16 17#if LLDB_ENABLE_LUA 18#include "Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h" 19#endif 20 21#include "lldb/Core/Debugger.h" 22#include "lldb/Host/Host.h" 23#include "lldb/Initialization/SystemInitializerCommon.h" 24#include "lldb/Interpreter/CommandInterpreter.h" 25#include "lldb/Symbol/ClangASTContext.h" 26#include "lldb/Utility/Timer.h" 27 28#ifdef LLDB_ENABLE_ALL 29#include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h" 30#include "Plugins/ABI/MacOSX-arm64/ABIMacOSX_arm64.h" 31#include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h" 32#include "Plugins/ABI/SysV-arc/ABISysV_arc.h" 33#endif // LLDB_ENABLE_ALL 34#include "Plugins/ABI/SysV-arm/ABISysV_arm.h" 35#include "Plugins/ABI/SysV-arm64/ABISysV_arm64.h" 36#ifdef LLDB_ENABLE_ALL 37#include "Plugins/ABI/SysV-hexagon/ABISysV_hexagon.h" 38#endif // LLDB_ENABLE_ALL 39#include "Plugins/ABI/SysV-i386/ABISysV_i386.h" 40#include "Plugins/ABI/SysV-mips/ABISysV_mips.h" 41#include "Plugins/ABI/SysV-mips64/ABISysV_mips64.h" 42#include "Plugins/ABI/SysV-ppc/ABISysV_ppc.h" 43#include "Plugins/ABI/SysV-ppc64/ABISysV_ppc64.h" 44#ifdef LLDB_ENABLE_ALL 45#include "Plugins/ABI/SysV-s390x/ABISysV_s390x.h" 46#endif // LLDB_ENABLE_ALL 47#include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h" 48#ifdef LLDB_ENABLE_ALL 49#include "Plugins/ABI/Windows-x86_64/ABIWindows_x86_64.h" 50#endif // LLDB_ENABLE_ALL 51#include "Plugins/Architecture/Arm/ArchitectureArm.h" 52#include "Plugins/Architecture/Mips/ArchitectureMips.h" 53#include "Plugins/Architecture/PPC64/ArchitecturePPC64.h" 54#include "Plugins/Disassembler/llvm/DisassemblerLLVMC.h" 55#ifdef LLDB_ENABLE_ALL 56#include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOS.h" 57#include "Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderMacOSXDYLD.h" 58#endif // LLDB_ENABLE_ALL 59#include "Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.h" 60#include "Plugins/DynamicLoader/Static/DynamicLoaderStatic.h" 61#ifdef LLDB_ENABLE_ALL 62#include "Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.h" 63#endif // LLDB_ENABLE_ALL 64#include "Plugins/Instruction/ARM/EmulateInstructionARM.h" 65#include "Plugins/Instruction/ARM64/EmulateInstructionARM64.h" 66#include "Plugins/Instruction/MIPS/EmulateInstructionMIPS.h" 67#include "Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.h" 68#include "Plugins/Instruction/PPC64/EmulateInstructionPPC64.h" 69#include "Plugins/InstrumentationRuntime/ASan/ASanRuntime.h" 70#include "Plugins/InstrumentationRuntime/MainThreadChecker/MainThreadCheckerRuntime.h" 71#ifdef LLDB_ENABLE_ALL 72#include "Plugins/InstrumentationRuntime/TSan/TSanRuntime.h" 73#endif // LLDB_ENABLE_ALL 74#include "Plugins/InstrumentationRuntime/UBSan/UBSanRuntime.h" 75#include "Plugins/JITLoader/GDB/JITLoaderGDB.h" 76#include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h" 77#ifdef LLDB_ENABLE_ALL 78#include "Plugins/Language/ObjC/ObjCLanguage.h" 79#include "Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h" 80#endif // LLDB_ENABLE_ALL 81#include "Plugins/LanguageRuntime/CPlusPlus/ItaniumABI/ItaniumABILanguageRuntime.h" 82#ifdef LLDB_ENABLE_ALL 83#include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV1.h" 84#include "Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h" 85#include "Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.h" 86#endif // LLDB_ENABLE_ALL 87#include "Plugins/MemoryHistory/asan/MemoryHistoryASan.h" 88#include "Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h" 89#ifdef LLDB_ENABLE_ALL 90#include "Plugins/ObjectContainer/Universal-Mach-O/ObjectContainerUniversalMachO.h" 91#endif // LLDB_ENABLE_ALL 92#include "Plugins/ObjectFile/Breakpad/ObjectFileBreakpad.h" 93#include "Plugins/ObjectFile/ELF/ObjectFileELF.h" 94#ifdef LLDB_ENABLE_ALL 95#include "Plugins/ObjectFile/Mach-O/ObjectFileMachO.h" 96#include "Plugins/ObjectFile/PECOFF/ObjectFilePECOFF.h" 97#include "Plugins/OperatingSystem/Python/OperatingSystemPython.h" 98#include "Plugins/Platform/Android/PlatformAndroid.h" 99#endif // LLDB_ENABLE_ALL 100#include "Plugins/Platform/FreeBSD/PlatformFreeBSD.h" 101#ifdef LLDB_ENABLE_ALL 102#include "Plugins/Platform/Linux/PlatformLinux.h" 103#include "Plugins/Platform/MacOSX/PlatformMacOSX.h" 104#include "Plugins/Platform/MacOSX/PlatformRemoteiOS.h" 105#include "Plugins/Platform/NetBSD/PlatformNetBSD.h" 106#include "Plugins/Platform/OpenBSD/PlatformOpenBSD.h" 107#include "Plugins/Platform/Windows/PlatformWindows.h" 108#endif // LLDB_ENABLE_ALL 109#include "Plugins/Platform/gdb-server/PlatformRemoteGDBServer.h" 110#include "Plugins/Process/elf-core/ProcessElfCore.h" 111#include "Plugins/Process/gdb-remote/ProcessGDBRemote.h" 112#ifdef LLDB_ENABLE_ALL 113#include "Plugins/Process/mach-core/ProcessMachCore.h" 114#include "Plugins/Process/minidump/ProcessMinidump.h" 115#endif // LLDB_ENABLE_ALL 116#include "Plugins/ScriptInterpreter/None/ScriptInterpreterNone.h" 117#include "Plugins/SymbolFile/Breakpad/SymbolFileBreakpad.h" 118#include "Plugins/SymbolFile/DWARF/SymbolFileDWARF.h" 119#include "Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.h" 120#ifdef LLDB_ENABLE_ALL 121#include "Plugins/SymbolFile/PDB/SymbolFilePDB.h" 122#endif // LLDB_ENABLE_ALL 123#include "Plugins/SymbolFile/Symtab/SymbolFileSymtab.h" 124#include "Plugins/SymbolVendor/ELF/SymbolVendorELF.h" 125#ifdef LLDB_ENABLE_ALL 126#include "Plugins/SystemRuntime/MacOSX/SystemRuntimeMacOSX.h" 127#endif // LLDB_ENABLE_ALL 128#include "Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h" 129#include "Plugins/UnwindAssembly/x86/UnwindAssembly-x86.h" 130 131#if defined(__APPLE__) 132#include "Plugins/DynamicLoader/Darwin-Kernel/DynamicLoaderDarwinKernel.h" 133#include "Plugins/Platform/MacOSX/PlatformAppleTVSimulator.h" 134#include "Plugins/Platform/MacOSX/PlatformAppleWatchSimulator.h" 135#include "Plugins/Platform/MacOSX/PlatformDarwinKernel.h" 136#include "Plugins/Platform/MacOSX/PlatformRemoteAppleBridge.h" 137#include "Plugins/Platform/MacOSX/PlatformRemoteAppleTV.h" 138#include "Plugins/Platform/MacOSX/PlatformRemoteAppleWatch.h" 139#include "Plugins/Platform/MacOSX/PlatformiOSSimulator.h" 140#include "Plugins/Process/MacOSX-Kernel/ProcessKDP.h" 141#include "Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h" 142#endif 143#ifdef LLDB_ENABLE_ALL 144#include "Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.h" 145#endif // LLDB_ENABLE_ALL 146 147#if defined(__FreeBSD__) 148#include "Plugins/Process/FreeBSD/ProcessFreeBSD.h" 149#endif 150 151#if defined(_WIN32) 152#include "Plugins/Process/Windows/Common/ProcessWindows.h" 153#include "lldb/Host/windows/windows.h" 154#endif 155 156#include "llvm/Support/TargetSelect.h" 157 158#pragma clang diagnostic push 159#pragma clang diagnostic ignored "-Wglobal-constructors" 160#include "llvm/ExecutionEngine/MCJIT.h" 161#pragma clang diagnostic pop 162 163#include <string> 164 165using namespace lldb_private; 166 167SystemInitializerFull::SystemInitializerFull() {} 168 169SystemInitializerFull::~SystemInitializerFull() {} 170 171#ifdef LLDB_ENABLE_ALL 172#define LLDB_PROCESS_AArch64(op) \ 173 ABIMacOSX_arm64::op(); \ 174 ABISysV_arm64::op(); 175#else // LLDB_ENABLE_ALL 176#define LLDB_PROCESS_AArch64(op) \ 177 ABISysV_arm64::op(); 178#endif // LLDB_ENABLE_ALL 179#ifdef LLDB_ENABLE_ALL 180#define LLDB_PROCESS_ARM(op) \ 181 ABIMacOSX_arm::op(); \ 182 ABISysV_arm::op(); 183#else // LLDB_ENABLE_ALL 184#define LLDB_PROCESS_ARM(op) \ 185 ABISysV_arm::op(); 186#endif // LLDB_ENABLE_ALL 187#define LLDB_PROCESS_ARC(op) \ 188 ABISysV_arc::op(); 189#define LLDB_PROCESS_Hexagon(op) ABISysV_hexagon::op(); 190#define LLDB_PROCESS_Mips(op) \ 191 ABISysV_mips::op(); \ 192 ABISysV_mips64::op(); 193#define LLDB_PROCESS_PowerPC(op) \ 194 ABISysV_ppc::op(); \ 195 ABISysV_ppc64::op(); 196#define LLDB_PROCESS_SystemZ(op) ABISysV_s390x::op(); 197#ifdef LLDB_ENABLE_ALL 198#define LLDB_PROCESS_X86(op) \ 199 ABIMacOSX_i386::op(); \ 200 ABISysV_i386::op(); \ 201 ABISysV_x86_64::op(); \ 202 ABIWindows_x86_64::op(); 203#else // LLDB_ENABLE_ALL 204#define LLDB_PROCESS_X86(op) \ 205 ABISysV_i386::op(); \ 206 ABISysV_x86_64::op(); 207#endif // LLDB_ENABLE_ALL 208 209#define LLDB_PROCESS_AMDGPU(op) 210#define LLDB_PROCESS_AVR(op) 211#define LLDB_PROCESS_BPF(op) 212#define LLDB_PROCESS_Lanai(op) 213#define LLDB_PROCESS_MSP430(op) 214#define LLDB_PROCESS_NVPTX(op) 215#define LLDB_PROCESS_RISCV(op) 216#define LLDB_PROCESS_Sparc(op) 217#define LLDB_PROCESS_WebAssembly(op) 218#define LLDB_PROCESS_XCore(op) 219 220llvm::Error SystemInitializerFull::Initialize() { 221 if (auto e = SystemInitializerCommon::Initialize()) 222 return e; 223 224 breakpad::ObjectFileBreakpad::Initialize(); 225 ObjectFileELF::Initialize(); 226#ifdef LLDB_ENABLE_ALL 227 ObjectFileMachO::Initialize(); 228 ObjectFilePECOFF::Initialize(); 229#endif // LLDB_ENABLE_ALL 230 231 ObjectContainerBSDArchive::Initialize(); 232#ifdef LLDB_ENABLE_ALL 233 ObjectContainerUniversalMachO::Initialize(); 234#endif // LLDB_ENABLE_ALL 235 236 ScriptInterpreterNone::Initialize(); 237 238#if LLDB_ENABLE_PYTHON 239 OperatingSystemPython::Initialize(); 240#endif 241 242#if LLDB_ENABLE_PYTHON 243 ScriptInterpreterPython::Initialize(); 244#endif 245 246#if LLDB_ENABLE_LUA 247 ScriptInterpreterLua::Initialize(); 248#endif 249 250 platform_freebsd::PlatformFreeBSD::Initialize(); 251#ifdef LLDB_ENABLE_ALL 252 platform_linux::PlatformLinux::Initialize(); 253 platform_netbsd::PlatformNetBSD::Initialize(); 254 platform_openbsd::PlatformOpenBSD::Initialize(); 255 PlatformWindows::Initialize(); 256 platform_android::PlatformAndroid::Initialize(); 257 PlatformRemoteiOS::Initialize(); 258 PlatformMacOSX::Initialize(); 259#endif // LLDB_ENABLE_ALL 260#if defined(__APPLE__) 261 PlatformiOSSimulator::Initialize(); 262 PlatformDarwinKernel::Initialize(); 263#endif 264 265 // Initialize LLVM and Clang 266 llvm::InitializeAllTargets(); 267 llvm::InitializeAllAsmPrinters(); 268 llvm::InitializeAllTargetMCs(); 269 llvm::InitializeAllDisassemblers(); 270 271 ClangASTContext::Initialize(); 272 273#define LLVM_TARGET(t) LLDB_PROCESS_ ## t(Initialize) 274#include "llvm/Config/Targets.def" 275 276 ArchitectureArm::Initialize(); 277 ArchitectureMips::Initialize(); 278 ArchitecturePPC64::Initialize(); 279 280 DisassemblerLLVMC::Initialize(); 281 282 JITLoaderGDB::Initialize(); 283 ProcessElfCore::Initialize(); 284#ifdef LLDB_ENABLE_ALL 285 ProcessMachCore::Initialize(); 286 minidump::ProcessMinidump::Initialize(); 287#endif // LLDB_ENABLE_ALL 288 MemoryHistoryASan::Initialize(); 289 AddressSanitizerRuntime::Initialize(); 290#ifdef LLDB_ENABLE_ALL 291 ThreadSanitizerRuntime::Initialize(); 292#endif // LLDB_ENABLE_ALL 293 UndefinedBehaviorSanitizerRuntime::Initialize(); 294 MainThreadCheckerRuntime::Initialize(); 295 296 SymbolVendorELF::Initialize(); 297 breakpad::SymbolFileBreakpad::Initialize(); 298 SymbolFileDWARF::Initialize(); 299#ifdef LLDB_ENABLE_ALL 300 SymbolFilePDB::Initialize(); 301#endif // LLDB_ENABLE_ALL 302 SymbolFileSymtab::Initialize(); 303 UnwindAssemblyInstEmulation::Initialize(); 304 UnwindAssembly_x86::Initialize(); 305 306 EmulateInstructionARM::Initialize(); 307 EmulateInstructionARM64::Initialize(); 308 EmulateInstructionMIPS::Initialize(); 309 EmulateInstructionMIPS64::Initialize(); 310 EmulateInstructionPPC64::Initialize(); 311 312 SymbolFileDWARFDebugMap::Initialize(); 313 ItaniumABILanguageRuntime::Initialize(); 314#ifdef LLDB_ENABLE_ALL 315 AppleObjCRuntimeV2::Initialize(); 316 AppleObjCRuntimeV1::Initialize(); 317 SystemRuntimeMacOSX::Initialize(); 318 RenderScriptRuntime::Initialize(); 319#endif // LLDB_ENABLE_ALL 320 321 CPlusPlusLanguage::Initialize(); 322#ifdef LLDB_ENABLE_ALL 323 ObjCLanguage::Initialize(); 324 ObjCPlusPlusLanguage::Initialize(); 325#endif // LLDB_ENABLE_ALL 326 327#if defined(_WIN32) 328 ProcessWindows::Initialize(); 329#endif 330#if defined(__FreeBSD__) 331 ProcessFreeBSD::Initialize(); 332#endif 333#if defined(__APPLE__) 334 SymbolVendorMacOSX::Initialize(); 335 ProcessKDP::Initialize(); 336 PlatformAppleTVSimulator::Initialize(); 337 PlatformAppleWatchSimulator::Initialize(); 338 PlatformRemoteAppleTV::Initialize(); 339 PlatformRemoteAppleWatch::Initialize(); 340 PlatformRemoteAppleBridge::Initialize(); 341 DynamicLoaderDarwinKernel::Initialize(); 342#endif 343 344 // This plugin is valid on any host that talks to a Darwin remote. It 345 // shouldn't be limited to __APPLE__. 346#ifdef LLDB_ENABLE_ALL 347 StructuredDataDarwinLog::Initialize(); 348#endif // LLDB_ENABLE_ALL 349 350 // Platform agnostic plugins 351 platform_gdb_server::PlatformRemoteGDBServer::Initialize(); 352 353 process_gdb_remote::ProcessGDBRemote::Initialize(); 354#ifdef LLDB_ENABLE_ALL 355 DynamicLoaderMacOSXDYLD::Initialize(); 356 DynamicLoaderMacOS::Initialize(); 357#endif // LLDB_ENABLE_ALL 358 DynamicLoaderPOSIXDYLD::Initialize(); 359 DynamicLoaderStatic::Initialize(); 360#ifdef LLDB_ENABLE_ALL 361 DynamicLoaderWindowsDYLD::Initialize(); 362#endif // LLDB_ENABLE_ALL 363 364 // Scan for any system or user LLDB plug-ins 365 PluginManager::Initialize(); 366 367 // The process settings need to know about installed plug-ins, so the 368 // Settings must be initialized 369 // AFTER PluginManager::Initialize is called. 370 371 Debugger::SettingsInitialize(); 372 373 return llvm::Error::success(); 374} 375 376void SystemInitializerFull::Terminate() { 377 static Timer::Category func_cat(LLVM_PRETTY_FUNCTION); 378 Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION); 379 380 Debugger::SettingsTerminate(); 381 382 // Terminate and unload and loaded system or user LLDB plug-ins 383 PluginManager::Terminate(); 384 385 ClangASTContext::Terminate(); 386 387 ArchitectureArm::Terminate(); 388 ArchitectureMips::Terminate(); 389 ArchitecturePPC64::Terminate(); 390 391#define LLVM_TARGET(t) LLDB_PROCESS_ ## t(Terminate) 392#include "llvm/Config/Targets.def" 393 394 DisassemblerLLVMC::Terminate(); 395 396 JITLoaderGDB::Terminate(); 397 ProcessElfCore::Terminate(); 398#ifdef LLDB_ENABLE_ALL 399 ProcessMachCore::Terminate(); 400 minidump::ProcessMinidump::Terminate(); 401#endif // LLDB_ENABLE_ALL 402 MemoryHistoryASan::Terminate(); 403 AddressSanitizerRuntime::Terminate(); 404#ifdef LLDB_ENABLE_ALL 405 ThreadSanitizerRuntime::Terminate(); 406#endif // LLDB_ENABLE_ALL 407 UndefinedBehaviorSanitizerRuntime::Terminate(); 408 MainThreadCheckerRuntime::Terminate(); 409 SymbolVendorELF::Terminate(); 410 breakpad::SymbolFileBreakpad::Terminate(); 411 SymbolFileDWARF::Terminate(); 412#ifdef LLDB_ENABLE_ALL 413 SymbolFilePDB::Terminate(); 414#endif // LLDB_ENABLE_ALL 415 SymbolFileSymtab::Terminate(); 416 UnwindAssembly_x86::Terminate(); 417 UnwindAssemblyInstEmulation::Terminate(); 418 419 EmulateInstructionARM::Terminate(); 420 EmulateInstructionARM64::Terminate(); 421 EmulateInstructionMIPS::Terminate(); 422 EmulateInstructionMIPS64::Terminate(); 423 EmulateInstructionPPC64::Terminate(); 424 425 SymbolFileDWARFDebugMap::Terminate(); 426 ItaniumABILanguageRuntime::Terminate(); 427#ifdef LLDB_ENABLE_ALL 428 AppleObjCRuntimeV2::Terminate(); 429 AppleObjCRuntimeV1::Terminate(); 430 SystemRuntimeMacOSX::Terminate(); 431 RenderScriptRuntime::Terminate(); 432#endif // LLDB_ENABLE_ALL 433 434 CPlusPlusLanguage::Terminate(); 435#ifdef LLDB_ENABLE_ALL 436 ObjCLanguage::Terminate(); 437 ObjCPlusPlusLanguage::Terminate(); 438#endif // LLDB_ENABLE_ALL 439 440#if defined(__APPLE__) 441 DynamicLoaderDarwinKernel::Terminate(); 442 ProcessKDP::Terminate(); 443 SymbolVendorMacOSX::Terminate(); 444 PlatformAppleTVSimulator::Terminate(); 445 PlatformAppleWatchSimulator::Terminate(); 446 PlatformRemoteAppleTV::Terminate(); 447 PlatformRemoteAppleWatch::Terminate(); 448 PlatformRemoteAppleBridge::Terminate(); 449#endif 450 451#if defined(__FreeBSD__) 452 ProcessFreeBSD::Terminate(); 453#endif 454 Debugger::SettingsTerminate(); 455 456 platform_gdb_server::PlatformRemoteGDBServer::Terminate(); 457 process_gdb_remote::ProcessGDBRemote::Terminate(); 458#ifdef LLDB_ENABLE_ALL 459 StructuredDataDarwinLog::Terminate(); 460 461 DynamicLoaderMacOSXDYLD::Terminate(); 462 DynamicLoaderMacOS::Terminate(); 463#endif // LLDB_ENABLE_ALL 464 DynamicLoaderPOSIXDYLD::Terminate(); 465 DynamicLoaderStatic::Terminate(); 466#ifdef LLDB_ENABLE_ALL 467 DynamicLoaderWindowsDYLD::Terminate(); 468#endif // LLDB_ENABLE_ALL 469 470#if LLDB_ENABLE_PYTHON 471 OperatingSystemPython::Terminate(); 472#endif 473 474 platform_freebsd::PlatformFreeBSD::Terminate(); 475#ifdef LLDB_ENABLE_ALL 476 platform_linux::PlatformLinux::Terminate(); 477 platform_netbsd::PlatformNetBSD::Terminate(); 478 platform_openbsd::PlatformOpenBSD::Terminate(); 479 PlatformWindows::Terminate(); 480 platform_android::PlatformAndroid::Terminate(); 481 PlatformMacOSX::Terminate(); 482 PlatformRemoteiOS::Terminate(); 483#endif // LLDB_ENABLE_ALL 484#if defined(__APPLE__) 485 PlatformiOSSimulator::Terminate(); 486 PlatformDarwinKernel::Terminate(); 487#endif 488 489 breakpad::ObjectFileBreakpad::Terminate(); 490 ObjectFileELF::Terminate(); 491#ifdef LLDB_ENABLE_ALL 492 ObjectFileMachO::Terminate(); 493 ObjectFilePECOFF::Terminate(); 494#endif // LLDB_ENABLE_ALL 495 496 ObjectContainerBSDArchive::Terminate(); 497#ifdef LLDB_ENABLE_ALL 498 ObjectContainerUniversalMachO::Terminate(); 499#endif // LLDB_ENABLE_ALL 500 501 // Now shutdown the common parts, in reverse order. 502 SystemInitializerCommon::Terminate(); 503} 504