diff options
Diffstat (limited to 'lldb/source/Plugins')
-rw-r--r-- | lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp | 11 | ||||
-rw-r--r-- | lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp | 11 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp b/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp index 4871c79f23d..40e5c89ecb0 100644 --- a/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp +++ b/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp @@ -10,6 +10,7 @@ #include "DisassemblerLLVM.h" #include "llvm-c/EnhancedDisassembly.h" +#include "llvm/Support/TargetSelect.h" #include "lldb/Core/Address.h" #include "lldb/Core/DataExtractor.h" @@ -669,6 +670,16 @@ DisassemblerLLVM::DisassemblerLLVM(const ArchSpec &arch) : m_disassembler (NULL), m_disassembler_thumb (NULL) // For ARM only { + // Initialize the LLVM objects needed to use the disassembler. + static struct InitializeLLVM { + InitializeLLVM() { + llvm::InitializeAllTargetInfos(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllAsmParsers(); + llvm::InitializeAllDisassemblers(); + } + } InitializeLLVM; + const std::string &arch_triple = arch.GetTriple().str(); if (!arch_triple.empty()) { diff --git a/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp b/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp index 8382e3ea26f..1379207e68e 100644 --- a/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp +++ b/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp @@ -10,6 +10,7 @@ #include "UnwindAssembly-x86.h" #include "llvm-c/EnhancedDisassembly.h" +#include "llvm/Support/TargetSelect.h" #include "lldb/Core/Address.h" #include "lldb/Core/Error.h" @@ -489,6 +490,16 @@ AssemblyParse_x86::instruction_length (Address addr, int &length) else triple = "x86_64-unknown-unknown"; + // Initialize the LLVM objects needed to use the disassembler. + static struct InitializeLLVM { + InitializeLLVM() { + llvm::InitializeAllTargetInfos(); + llvm::InitializeAllTargetMCs(); + llvm::InitializeAllAsmParsers(); + llvm::InitializeAllDisassemblers(); + } + } InitializeLLVM; + EDDisassemblerRef disasm; EDInstRef cur_insn; |