mirror of
https://github.com/intel/llvm.git
synced 2026-01-15 12:25:46 +08:00
Most address represented in lldb as section plus offset and handling of absolute addresses is problematic in several location because of lack of necessary information (e.g. Target) or because of performance issues. This CL change the way ObjectFileELF handle the absolute symbols with creating a pseudo section for each symbol. With this change all existing code designed to work with addresses in the form of section plus offset will work with absolute symbols as well. Differential revision: http://reviews.llvm.org/D17450 llvm-svn: 261859
125 lines
4.0 KiB
C++
125 lines
4.0 KiB
C++
//===-- ConvertEnum.cpp -----------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#include "lldb/Utility/ConvertEnum.h"
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
const char *
|
|
lldb_private::GetVoteAsCString(Vote vote)
|
|
{
|
|
switch (vote)
|
|
{
|
|
case eVoteNo:
|
|
return "no";
|
|
case eVoteNoOpinion:
|
|
return "no opinion";
|
|
case eVoteYes:
|
|
return "yes";
|
|
}
|
|
return "invalid";
|
|
}
|
|
|
|
const char *
|
|
lldb_private::GetSectionTypeAsCString(lldb::SectionType sect_type)
|
|
{
|
|
switch (sect_type)
|
|
{
|
|
case eSectionTypeInvalid:
|
|
return "invalid";
|
|
case eSectionTypeCode:
|
|
return "code";
|
|
case eSectionTypeContainer:
|
|
return "container";
|
|
case eSectionTypeData:
|
|
return "data";
|
|
case eSectionTypeDataCString:
|
|
return "data-cstr";
|
|
case eSectionTypeDataCStringPointers:
|
|
return "data-cstr-ptr";
|
|
case eSectionTypeDataSymbolAddress:
|
|
return "data-symbol-addr";
|
|
case eSectionTypeData4:
|
|
return "data-4-byte";
|
|
case eSectionTypeData8:
|
|
return "data-8-byte";
|
|
case eSectionTypeData16:
|
|
return "data-16-byte";
|
|
case eSectionTypeDataPointers:
|
|
return "data-ptrs";
|
|
case eSectionTypeDebug:
|
|
return "debug";
|
|
case eSectionTypeZeroFill:
|
|
return "zero-fill";
|
|
case eSectionTypeDataObjCMessageRefs:
|
|
return "objc-message-refs";
|
|
case eSectionTypeDataObjCCFStrings:
|
|
return "objc-cfstrings";
|
|
case eSectionTypeDWARFDebugAbbrev:
|
|
return "dwarf-abbrev";
|
|
case eSectionTypeDWARFDebugAddr:
|
|
return "dwarf-addr";
|
|
case eSectionTypeDWARFDebugAranges:
|
|
return "dwarf-aranges";
|
|
case eSectionTypeDWARFDebugFrame:
|
|
return "dwarf-frame";
|
|
case eSectionTypeDWARFDebugInfo:
|
|
return "dwarf-info";
|
|
case eSectionTypeDWARFDebugLine:
|
|
return "dwarf-line";
|
|
case eSectionTypeDWARFDebugLoc:
|
|
return "dwarf-loc";
|
|
case eSectionTypeDWARFDebugMacInfo:
|
|
return "dwarf-macinfo";
|
|
case eSectionTypeDWARFDebugMacro:
|
|
return "dwarf-macro";
|
|
case eSectionTypeDWARFDebugPubNames:
|
|
return "dwarf-pubnames";
|
|
case eSectionTypeDWARFDebugPubTypes:
|
|
return "dwarf-pubtypes";
|
|
case eSectionTypeDWARFDebugRanges:
|
|
return "dwarf-ranges";
|
|
case eSectionTypeDWARFDebugStr:
|
|
return "dwarf-str";
|
|
case eSectionTypeDWARFDebugStrOffsets:
|
|
return "dwarf-str-offsets";
|
|
case eSectionTypeELFSymbolTable:
|
|
return "elf-symbol-table";
|
|
case eSectionTypeELFDynamicSymbols:
|
|
return "elf-dynamic-symbols";
|
|
case eSectionTypeELFRelocationEntries:
|
|
return "elf-relocation-entries";
|
|
case eSectionTypeELFDynamicLinkInfo:
|
|
return "elf-dynamic-link-info";
|
|
case eSectionTypeDWARFAppleNames:
|
|
return "apple-names";
|
|
case eSectionTypeDWARFAppleTypes:
|
|
return "apple-types";
|
|
case eSectionTypeDWARFAppleNamespaces:
|
|
return "apple-namespaces";
|
|
case eSectionTypeDWARFAppleObjC:
|
|
return "apple-objc";
|
|
case eSectionTypeEHFrame:
|
|
return "eh-frame";
|
|
case eSectionTypeARMexidx:
|
|
return "ARM.exidx";
|
|
case eSectionTypeARMextab:
|
|
return "ARM.extab";
|
|
case eSectionTypeCompactUnwind:
|
|
return "compact-unwind";
|
|
case eSectionTypeGoSymtab:
|
|
return "go-symtab";
|
|
case eSectionTypeAbsoluteAddress:
|
|
return "absolute";
|
|
case eSectionTypeOther:
|
|
return "regular";
|
|
}
|
|
return "unknown";
|
|
}
|