[Lldb-commits] [lldb] r170171 - in /lldb/trunk/source: Plugins/Disassembler/llvm/DisassemblerLLVM.cpp Plugins/Disassembler/llvm/DisassemblerLLVM.h lldb.cpp
Filipe Cabecinhas
filcab at gmail.com
Fri Dec 14 12:30:04 PST 2012
I suppose you also want to apply this patch, to remove them from the Xcode
project file ;-)
Regards,
Filipe
F
On Thu, Dec 13, 2012 at 5:29 PM, Sean Callanan <scallanan at apple.com> wrote:
> Author: spyffe
> Date: Thu Dec 13 19:29:59 2012
> New Revision: 170171
>
> URL: http://llvm.org/viewvc/llvm-project?rev=170171&view=rev
> Log:
> Rmoved the old LLVM disassembler based on libedis.
>
> Removed:
> lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
> lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.h
> Modified:
> lldb/trunk/source/lldb.cpp
>
> Removed: lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp?rev=170170&view=auto
>
> ==============================================================================
> --- lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
> (original)
> +++ lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
> (removed)
> @@ -1,529 +0,0 @@
> -//===-- DisassemblerLLVM.cpp ------------------------------------*- C++
> -*-===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#include "DisassemblerLLVM.h"
> -
> -#include "llvm-c/EnhancedDisassembly.h"
> -#include "llvm/Support/TargetSelect.h"
> -
> -#include "lldb/Core/Address.h"
> -#include "lldb/Core/DataExtractor.h"
> -#include "lldb/Core/Disassembler.h"
> -#include "lldb/Core/Module.h"
> -#include "lldb/Core/PluginManager.h"
> -#include "lldb/Core/Stream.h"
> -#include "lldb/Core/StreamString.h"
> -#include "lldb/Symbol/SymbolContext.h"
> -
> -#include "lldb/Target/ExecutionContext.h"
> -#include "lldb/Target/Process.h"
> -#include "lldb/Target/RegisterContext.h"
> -#include "lldb/Target/Target.h"
> -
> -#include <assert.h>
> -
> -using namespace lldb;
> -using namespace lldb_private;
> -
> -
> -static int
> -DataExtractorByteReader (uint8_t *byte, uint64_t address, void *arg)
> -{
> - DataExtractor &extractor = *((DataExtractor *)arg);
> -
> - if (extractor.ValidOffset(address))
> - {
> - *byte = *(extractor.GetDataStart() + address);
> - return 0;
> - }
> - else
> - {
> - return -1;
> - }
> -}
> -
> -namespace {
> - struct RegisterReaderArg {
> - const lldb::addr_t instructionPointer;
> - const EDDisassemblerRef disassembler;
> -
> - RegisterReaderArg(lldb::addr_t ip,
> - EDDisassemblerRef dis) :
> - instructionPointer(ip),
> - disassembler(dis)
> - {
> - }
> - };
> -}
> -
> -static int IPRegisterReader(uint64_t *value, unsigned regID, void* arg)
> -{
> - uint64_t instructionPointer =
> ((RegisterReaderArg*)arg)->instructionPointer;
> - EDDisassemblerRef disassembler =
> ((RegisterReaderArg*)arg)->disassembler;
> -
> - if (EDRegisterIsProgramCounter(disassembler, regID)) {
> - *value = instructionPointer;
> - return 0;
> - }
> -
> - return -1;
> -}
> -
> -InstructionLLVM::InstructionLLVM (const Address &addr,
> - AddressClass addr_class,
> - EDDisassemblerRef disassembler,
> - llvm::Triple::ArchType arch_type) :
> - Instruction (addr, addr_class),
> - m_disassembler (disassembler),
> - m_inst (NULL),
> - m_arch_type (arch_type)
> -{
> -}
> -
> -InstructionLLVM::~InstructionLLVM()
> -{
> - if (m_inst)
> - {
> - EDReleaseInst(m_inst);
> - m_inst = NULL;
> - }
> -}
> -
> -static void
> -PadString(Stream *s, const std::string &str, size_t width)
> -{
> - int diff = width - str.length();
> -
> - if (diff > 0)
> - s->Printf("%s%*.*s", str.c_str(), diff, diff, "");
> - else
> - s->Printf("%s ", str.c_str());
> -}
> -static void
> -AddSymbolicInfo (const ExecutionContext *exe_ctx,
> - StreamString &comment,
> - uint64_t operand_value,
> - const Address &inst_addr)
> -{
> - Address so_addr;
> - Target *target = NULL;
> - if (exe_ctx)
> - target = exe_ctx->GetTargetPtr();
> - if (target && !target->GetSectionLoadList().IsEmpty())
> - {
> - if
> (target->GetSectionLoadList().ResolveLoadAddress(operand_value, so_addr))
> - so_addr.Dump (&comment,
> - exe_ctx ?
> exe_ctx->GetBestExecutionContextScope() : NULL,
> - Address::DumpStyleResolvedDescriptionNoModule,
> - Address::DumpStyleSectionNameOffset);
> - }
> - else
> - {
> - ModuleSP module_sp (inst_addr.GetModule());
> - if (module_sp)
> - {
> - if (module_sp->ResolveFileAddress(operand_value, so_addr))
> - so_addr.Dump (&comment,
> - exe_ctx ?
> exe_ctx->GetBestExecutionContextScope() : NULL,
> -
> Address::DumpStyleResolvedDescriptionNoModule,
> - Address::DumpStyleSectionNameOffset);
> - }
> - }
> -}
> -
> -#include "llvm/ADT/StringRef.h"
> -static inline void StripSpaces(llvm::StringRef &Str)
> -{
> - while (!Str.empty() && isspace(Str[0]))
> - Str = Str.substr(1);
> - while (!Str.empty() && isspace(Str.back()))
> - Str = Str.substr(0, Str.size()-1);
> -}
> -static inline void RStrip(llvm::StringRef &Str, char c)
> -{
> - if (!Str.empty() && Str.back() == c)
> - Str = Str.substr(0, Str.size()-1);
> -}
> -// Aligns the raw disassembly (passed as 'str') with the rest of edis'ed
> disassembly output.
> -// This is called from non-raw mode when edis of the current m_inst fails
> for some reason.
> -static void
> -Align(Stream *s, const char *str, size_t opcodeColWidth, size_t
> operandColWidth)
> -{
> - llvm::StringRef raw_disasm(str);
> - StripSpaces(raw_disasm);
> - // Split the raw disassembly into opcode and operands.
> - std::pair<llvm::StringRef, llvm::StringRef> p =
> raw_disasm.split('\t');
> - PadString(s, p.first, opcodeColWidth);
> - if (!p.second.empty())
> - PadString(s, p.second, operandColWidth);
> -}
> -
> -#define AlignPC(pc_val) (pc_val & 0xFFFFFFFC)
> -
> -void
> -InstructionLLVM::CalculateMnemonicOperandsAndComment (const
> ExecutionContext* exe_ctx)
> -{
> - const int num_tokens = EDNumTokens(m_inst);
> - if (num_tokens > 0)
> - {
> - const char *token_cstr = NULL;
> - int currentOpIndex = -1;
> - StreamString comment;
> - uint32_t addr_nibble_size = 8;
> - addr_t base_addr = LLDB_INVALID_ADDRESS;
> - Target *target = exe_ctx ? exe_ctx->GetTargetPtr() : NULL;
> - if (target)
> - {
> - addr_nibble_size =
> target->GetArchitecture().GetAddressByteSize() * 2;
> - if (!target->GetSectionLoadList().IsEmpty())
> - base_addr = GetAddress().GetLoadAddress (target);
> - }
> -
> - if (base_addr == LLDB_INVALID_ADDRESS)
> - base_addr = GetAddress().GetFileAddress ();
> -
> - lldb::addr_t PC = base_addr + EDInstByteSize(m_inst);
> -
> - // When executing an ARM instruction, PC reads as the address of
> the
> - // current instruction plus 8. And for Thumb, it is plus 4.
> - if (m_arch_type == llvm::Triple::arm)
> - PC = base_addr + 8;
> - else if (m_arch_type == llvm::Triple::thumb)
> - PC = base_addr + 4;
> -
> - RegisterReaderArg rra(PC, m_disassembler);
> -
> - for (int token_idx = 0; token_idx < num_tokens; ++token_idx)
> - {
> - EDTokenRef token;
> - if (EDGetToken(&token, m_inst, token_idx))
> - break;
> -
> - if (EDTokenIsOpcode(token) == 1)
> - {
> - if (EDGetTokenString(&token_cstr, token) == 0) // 0 on
> success
> - {
> - if (token_cstr)
> - m_opcode_name.assign(token_cstr);
> - }
> - }
> - else
> - {
> - int operandIndex = EDOperandIndexForToken(token);
> -
> - if (operandIndex >= 0)
> - {
> - if (operandIndex != currentOpIndex)
> - {
> - currentOpIndex = operandIndex;
> - EDOperandRef operand;
> -
> - if (!EDGetOperand(&operand, m_inst,
> currentOpIndex))
> - {
> - if (EDOperandIsMemory(operand))
> - {
> - uint64_t operand_value;
> -
> - if (!EDEvaluateOperand(&operand_value,
> operand, IPRegisterReader, &rra))
> - {
> - comment.Printf("0x%*.*" PRIx64 " ",
> addr_nibble_size, addr_nibble_size, operand_value);
> - AddSymbolicInfo (exe_ctx, comment,
> operand_value, GetAddress());
> - }
> - }
> - }
> - }
> - }
> - if (m_mnemocics.empty() && EDTokenIsWhitespace (token) ==
> 1)
> - continue;
> - if (EDGetTokenString (&token_cstr, token))
> - break;
> - m_mnemocics.append (token_cstr);
> - }
> - }
> - // FIXME!!!
> - // Workaround for llvm::tB's operands not properly parsed by
> ARMAsmParser.
> - if (m_arch_type == llvm::Triple::thumb &&
> m_opcode_name.compare("b") == 0)
> - {
> - const char *inst_str;
> - const char *pos = NULL;
> - comment.Clear();
> - if (EDGetInstString(&inst_str, m_inst) == 0 && (pos =
> strstr(inst_str, "#")) != NULL)
> - {
> - uint64_t operand_value = PC + atoi(++pos);
> - // Put the address value into the operands.
> - comment.Printf("0x%*.*" PRIx64 " ", addr_nibble_size,
> addr_nibble_size, operand_value);
> - AddSymbolicInfo (exe_ctx, comment, operand_value,
> GetAddress());
> - }
> - }
> - // Yet more workaround for "bl #..." and "blx #...".
> - if ((m_arch_type == llvm::Triple::arm || m_arch_type ==
> llvm::Triple::thumb) &&
> - (m_opcode_name.compare("bl") == 0 ||
> m_opcode_name.compare("blx") == 0))
> - {
> - const char *inst_str;
> - const char *pos = NULL;
> - comment.Clear();
> - if (EDGetInstString(&inst_str, m_inst) == 0 && (pos =
> strstr(inst_str, "#")) != NULL)
> - {
> - if (m_arch_type == llvm::Triple::thumb &&
> m_opcode_name.compare("blx") == 0)
> - {
> - // A8.6.23 BLX (immediate)
> - // Target Address = Align(PC,4) + offset value
> - PC = AlignPC(PC);
> - }
> - uint64_t operand_value = PC + atoi(++pos);
> - // Put the address value into the comment.
> - comment.Printf("0x%*.*" PRIx64 " ", addr_nibble_size,
> addr_nibble_size, operand_value);
> - // And the original token string into the operands.
> -// llvm::StringRef Str(pos - 1);
> -// RStrip(Str, '\n');
> -// operands.PutCString(Str.str().c_str());
> - AddSymbolicInfo (exe_ctx, comment, operand_value,
> GetAddress());
> - }
> - }
> - // END of workaround.
> -
> - m_comment.swap (comment.GetString());
> - }
> -}
> -
> -bool
> -InstructionLLVM::DoesBranch() const
> -{
> - return EDInstIsBranch(m_inst);
> -}
> -
> -size_t
> -InstructionLLVM::Decode (const Disassembler &disassembler,
> - const lldb_private::DataExtractor &data,
> - uint32_t data_offset)
> -{
> - if (EDCreateInsts(&m_inst, 1, m_disassembler,
> DataExtractorByteReader, data_offset, (void*)(&data)))
> - {
> - const int byte_size = EDInstByteSize(m_inst);
> - uint32_t offset = data_offset;
> - // Make a copy of the opcode in m_opcode
> - switch (disassembler.GetArchitecture().GetMachine())
> - {
> - case llvm::Triple::x86:
> - case llvm::Triple::x86_64:
> - m_opcode.SetOpcodeBytes (data.PeekData (data_offset,
> byte_size), byte_size);
> - break;
> -
> - case llvm::Triple::arm:
> - case llvm::Triple::thumb:
> - switch (byte_size)
> - {
> - case 2:
> - m_opcode.SetOpcode16 (data.GetU16 (&offset));
> - break;
> -
> - case 4:
> - {
> - if (GetAddressClass() == eAddressClassCodeAlternateISA)
> - {
> - // If it is a 32-bit THUMB instruction, we need to
> swap the upper & lower halves.
> - uint32_t orig_bytes = data.GetU32 (&offset);
> - uint16_t upper_bits = (orig_bytes >> 16) & ((1u <<
> 16) - 1);
> - uint16_t lower_bits = orig_bytes & ((1u << 16) - 1);
> - uint32_t swapped = (lower_bits << 16) | upper_bits;
> - m_opcode.SetOpcode32 (swapped);
> - }
> - else
> - m_opcode.SetOpcode32 (data.GetU32 (&offset));
> - }
> - break;
> -
> - default:
> - assert (!"Invalid ARM opcode size");
> - break;
> - }
> - break;
> -
> - default:
> - assert (!"This shouldn't happen since we control the
> architecture we allow DisassemblerLLVM to be created for");
> - break;
> - }
> - return byte_size;
> - }
> - else
> - return 0;
> -}
> -
> -static inline EDAssemblySyntax_t
> -SyntaxForArchSpec (const ArchSpec &arch)
> -{
> - switch (arch.GetMachine ())
> - {
> - case llvm::Triple::x86:
> - case llvm::Triple::x86_64:
> - return kEDAssemblySyntaxX86ATT;
> - case llvm::Triple::arm:
> - case llvm::Triple::thumb:
> - return kEDAssemblySyntaxARMUAL;
> - default:
> - break;
> - }
> - return (EDAssemblySyntax_t)0; // default
> -}
> -
> -Disassembler *
> -DisassemblerLLVM::CreateInstance(const ArchSpec &arch)
> -{
> - std::auto_ptr<DisassemblerLLVM> disasm_ap (new
> DisassemblerLLVM(arch));
> -
> - if (disasm_ap.get() && disasm_ap->IsValid())
> - return disasm_ap.release();
> -
> - return NULL;
> -}
> -
> -DisassemblerLLVM::DisassemblerLLVM(const ArchSpec &arch) :
> - Disassembler (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())
> - {
> - if (EDGetDisassembler(&m_disassembler, arch_triple.c_str(),
> SyntaxForArchSpec (arch)))
> - m_disassembler = NULL;
> - llvm::Triple::ArchType llvm_arch = arch.GetTriple().getArch();
> - // Don't have the lldb::Triple::thumb architecture here.
> If someone specifies
> - // "thumb" as the architecture, we want a thumb only
> disassembler. But if any
> - // architecture starting with "arm" if specified, we want
> to auto detect the
> - // arm/thumb code automatically using the AddressClass
> from section offset
> - // addresses.
> - if (llvm_arch == llvm::Triple::arm)
> - {
> - ArchSpec thumb_arch(arch);
> -
> thumb_arch.GetTriple().setArchName(llvm::StringRef("thumbv7"));
> - std::string thumb_triple(thumb_arch.GetTriple().getTriple());
> - if (EDGetDisassembler(&m_disassembler_thumb,
> thumb_triple.c_str(), kEDAssemblySyntaxARMUAL))
> - m_disassembler_thumb = NULL;
> - }
> - }
> -}
> -
> -DisassemblerLLVM::~DisassemblerLLVM()
> -{
> -}
> -
> -size_t
> -DisassemblerLLVM::DecodeInstructions
> -(
> - const Address &base_addr,
> - const DataExtractor& data,
> - uint32_t data_offset,
> - uint32_t num_instructions,
> - bool append
> -)
> -{
> - if (m_disassembler == NULL)
> - return 0;
> -
> - size_t total_inst_byte_size = 0;
> -
> - if (!append)
> - m_instruction_list.Clear();
> -
> - while (data.ValidOffset(data_offset) && num_instructions)
> - {
> - Address inst_addr (base_addr);
> - inst_addr.Slide(data_offset);
> -
> - bool use_thumb = false;
> - // If we have a thumb disassembler, then we have an ARM
> architecture
> - // so we need to check what the instruction address class is to
> make
> - // sure we shouldn't be disassembling as thumb...
> - AddressClass inst_address_class = eAddressClassInvalid;
> - if (m_disassembler_thumb)
> - {
> - inst_address_class = inst_addr.GetAddressClass ();
> - if (inst_address_class == eAddressClassCodeAlternateISA)
> - use_thumb = true;
> - }
> -
> - InstructionSP inst_sp (new InstructionLLVM (inst_addr,
> - inst_address_class,
> - use_thumb ?
> m_disassembler_thumb : m_disassembler,
> - use_thumb ?
> llvm::Triple::thumb : m_arch.GetMachine()));
> -
> - size_t inst_byte_size = inst_sp->Decode (*this, data,
> data_offset);
> -
> - if (inst_byte_size == 0)
> - break;
> -
> - m_instruction_list.Append (inst_sp);
> -
> - total_inst_byte_size += inst_byte_size;
> - data_offset += inst_byte_size;
> - num_instructions--;
> - }
> -
> - return total_inst_byte_size;
> -}
> -
> -void
> -DisassemblerLLVM::Initialize()
> -{
> - PluginManager::RegisterPlugin (GetPluginNameStatic(),
> - GetPluginDescriptionStatic(),
> - CreateInstance);
> -}
> -
> -void
> -DisassemblerLLVM::Terminate()
> -{
> - PluginManager::UnregisterPlugin (CreateInstance);
> -}
> -
> -
> -const char *
> -DisassemblerLLVM::GetPluginNameStatic()
> -{
> - return "llvm-edis";
> -}
> -
> -const char *
> -DisassemblerLLVM::GetPluginDescriptionStatic()
> -{
> - return "Disassembler that uses the LLVM enhanced disassembler to
> disassemble i386, x86_64 and ARM.";
> -}
> -
> -//------------------------------------------------------------------
> -// PluginInterface protocol
> -//------------------------------------------------------------------
> -const char *
> -DisassemblerLLVM::GetPluginName()
> -{
> - return "DisassemblerLLVM";
> -}
> -
> -const char *
> -DisassemblerLLVM::GetShortPluginName()
> -{
> - return GetPluginNameStatic();
> -}
> -
> -uint32_t
> -DisassemblerLLVM::GetPluginVersion()
> -{
> - return 1;
> -}
> -
>
> Removed: lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.h
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.h?rev=170170&view=auto
>
> ==============================================================================
> --- lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.h
> (original)
> +++ lldb/trunk/source/Plugins/Disassembler/llvm/DisassemblerLLVM.h
> (removed)
> @@ -1,105 +0,0 @@
> -//===-- DisassemblerLLVM.h --------------------------------------*- C++
> -*-===//
> -//
> -// The LLVM Compiler Infrastructure
> -//
> -// This file is distributed under the University of Illinois Open Source
> -// License. See LICENSE.TXT for details.
> -//
>
> -//===----------------------------------------------------------------------===//
> -
> -#ifndef liblldb_DisassemblerLLVM_h_
> -#define liblldb_DisassemblerLLVM_h_
> -
> -
> -#include "llvm-c/EnhancedDisassembly.h"
> -
> -#include "lldb/Core/Disassembler.h"
> -#include "lldb/Host/Mutex.h"
> -
> -class InstructionLLVM : public lldb_private::Instruction
> -{
> -public:
> - InstructionLLVM (const lldb_private::Address &addr,
> - lldb::AddressClass addr_class,
> - EDDisassemblerRef disassembler,
> - llvm::Triple::ArchType arch_type);
> -
> - virtual
> - ~InstructionLLVM();
> -
> - virtual bool
> - DoesBranch () const;
> -
> - virtual size_t
> - Decode (const lldb_private::Disassembler &disassembler,
> - const lldb_private::DataExtractor &data,
> - uint32_t data_offset);
> -
> - virtual void
> - CalculateMnemonicOperandsAndComment (const
> lldb_private::ExecutionContext* exe_ctx);
> -
> -protected:
> - EDDisassemblerRef m_disassembler;
> - EDInstRef m_inst;
> - llvm::Triple::ArchType m_arch_type;
> -};
> -
> -
> -class DisassemblerLLVM : public lldb_private::Disassembler
> -{
> -public:
> - //------------------------------------------------------------------
> - // Static Functions
> - //------------------------------------------------------------------
> - static void
> - Initialize();
> -
> - static void
> - Terminate();
> -
> - static const char *
> - GetPluginNameStatic();
> -
> - static const char *
> - GetPluginDescriptionStatic();
> -
> - static lldb_private::Disassembler *
> - CreateInstance(const lldb_private::ArchSpec &arch);
> -
> -
> - DisassemblerLLVM(const lldb_private::ArchSpec &arch);
> -
> - virtual
> - ~DisassemblerLLVM();
> -
> - size_t
> - DecodeInstructions (const lldb_private::Address &base_addr,
> - const lldb_private::DataExtractor& data,
> - uint32_t data_offset,
> - uint32_t num_instructions,
> - bool append);
> -
> - //------------------------------------------------------------------
> - // PluginInterface protocol
> - //------------------------------------------------------------------
> - virtual const char *
> - GetPluginName();
> -
> - virtual const char *
> - GetShortPluginName();
> -
> - virtual uint32_t
> - GetPluginVersion();
> -
> -protected:
> - bool
> - IsValid() const
> - {
> - return m_disassembler != NULL;
> - }
> -
> - EDDisassemblerRef m_disassembler;
> - EDDisassemblerRef m_disassembler_thumb;
> -};
> -
> -#endif // liblldb_DisassemblerLLVM_h_
>
> Modified: lldb/trunk/source/lldb.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/lldb/trunk/source/lldb.cpp?rev=170171&r1=170170&r2=170171&view=diff
>
> ==============================================================================
> --- lldb/trunk/source/lldb.cpp (original)
> +++ lldb/trunk/source/lldb.cpp Thu Dec 13 19:29:59 2012
> @@ -27,7 +27,6 @@
> #include "Plugins/ABI/MacOSX-i386/ABIMacOSX_i386.h"
> #include "Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.h"
> #include "Plugins/ABI/SysV-x86_64/ABISysV_x86_64.h"
> -#include "Plugins/Disassembler/llvm/DisassemblerLLVM.h"
> #include "Plugins/Disassembler/llvm/DisassemblerLLVMC.h"
> #include "Plugins/Instruction/ARM/EmulateInstructionARM.h"
> #include "Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.h"
> @@ -98,7 +97,6 @@
> ABIMacOSX_arm::Initialize();
> ABISysV_x86_64::Initialize();
> DisassemblerLLVMC::Initialize();
> - DisassemblerLLVM::Initialize();
> ObjectContainerBSDArchive::Initialize();
> ObjectFileELF::Initialize();
> SymbolFileDWARF::Initialize();
> @@ -179,7 +177,6 @@
> ABIMacOSX_arm::Terminate();
> ABISysV_x86_64::Terminate();
> DisassemblerLLVMC::Terminate();
> - DisassemblerLLVM::Terminate();
> ObjectContainerBSDArchive::Terminate();
> ObjectFileELF::Terminate();
> SymbolFileDWARF::Terminate();
>
>
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20121214/fd444efd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: remove-disassemblellvm-xcodeproj.diff
Type: application/octet-stream
Size: 3994 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20121214/fd444efd/attachment.obj>
More information about the lldb-commits
mailing list