LLVM  4.0.0
Namespaces | Classes | Enumerations | Functions | Variables
llvm::dwarf Namespace Reference

Namespaces

 syntax
 

Classes

struct  PubIndexEntryDescriptor
 Decsribes an entry of the various gnu_pub* debug sections. More...
 

Enumerations

enum  LLVMConstants : uint32_t {
  DW_TAG_invalid = ~0U, DW_VIRTUALITY_invalid = ~0U, DW_MACINFO_invalid = ~0U, DWARF_VERSION = 4,
  DW_PUBTYPES_VERSION = 2, DW_PUBNAMES_VERSION = 2, DW_ARANGES_VERSION = 2
}
 
enum  Tag : uint16_t { DW_TAG_lo_user = 0x4080, DW_TAG_hi_user = 0xffff, DW_TAG_user_base = 0x1000 }
 
enum  Attribute : uint16_t { DW_AT_lo_user = 0x2000, DW_AT_hi_user = 0x3fff }
 Attributes. More...
 
enum  Form : uint16_t { DW_FORM_lo_user = 0x1f00 }
 
enum  LocationAtom { DW_OP_lo_user = 0xe0, DW_OP_hi_user = 0xff, DW_OP_LLVM_fragment = 0x1000 }
 
enum  TypeKind { DW_ATE_lo_user = 0x80, DW_ATE_hi_user = 0xff }
 
enum  DecimalSignEncoding {
  DW_DS_unsigned = 0x01, DW_DS_leading_overpunch = 0x02, DW_DS_trailing_overpunch = 0x03, DW_DS_leading_separate = 0x04,
  DW_DS_trailing_separate = 0x05
}
 
enum  EndianityEncoding {
  DW_END_default = 0x00, DW_END_big = 0x01, DW_END_little = 0x02, DW_END_lo_user = 0x40,
  DW_END_hi_user = 0xff
}
 
enum  AccessAttribute { DW_ACCESS_public = 0x01, DW_ACCESS_protected = 0x02, DW_ACCESS_private = 0x03 }
 
enum  VisibilityAttribute { DW_VIS_local = 0x01, DW_VIS_exported = 0x02, DW_VIS_qualified = 0x03 }
 
enum  VirtualityAttribute { DW_VIRTUALITY_max = 0x02 }
 
enum  DefaultedMemberAttribute { DW_DEFAULTED_max = 0x02 }
 
enum  SourceLanguage { DW_LANG_lo_user = 0x8000, DW_LANG_hi_user = 0xffff }
 
enum  CaseSensitivity { DW_ID_case_sensitive = 0x00, DW_ID_up_case = 0x01, DW_ID_down_case = 0x02, DW_ID_case_insensitive = 0x03 }
 
enum  CallingConvention { DW_CC_lo_user = 0x40, DW_CC_hi_user = 0xff }
 
enum  InlineAttribute { DW_INL_not_inlined = 0x00, DW_INL_inlined = 0x01, DW_INL_declared_not_inlined = 0x02, DW_INL_declared_inlined = 0x03 }
 
enum  ArrayDimensionOrdering { DW_ORD_row_major = 0x00, DW_ORD_col_major = 0x01 }
 
enum  DiscriminantList { DW_DSC_label = 0x00, DW_DSC_range = 0x01 }
 
enum  LineNumberOps : uint8_t
 Line Number Standard Opcode Encodings. More...
 
enum  LineNumberExtendedOps { DW_LNE_lo_user = 0x80, DW_LNE_hi_user = 0xff }
 Line Number Extended Opcode Encodings. More...
 
enum  LinerNumberEntryFormat { DW_LNCT_lo_user = 0x2000, DW_LNCT_hi_user = 0x3fff }
 
enum  MacinfoRecordType {
  DW_MACINFO_define = 0x01, DW_MACINFO_undef = 0x02, DW_MACINFO_start_file = 0x03, DW_MACINFO_end_file = 0x04,
  DW_MACINFO_vendor_ext = 0xff
}
 
enum  MacroEntryType { DW_MACRO_lo_user = 0xe0, DW_MACRO_hi_user = 0xff }
 DWARF v5 macro information entry type encodings. More...
 
enum  RangeListEntries
 DWARF v5 range list entry encoding values. More...
 
enum  CallFrameInfo { DW_CFA_extended = 0x00, DW_CFA_lo_user = 0x1c, DW_CFA_hi_user = 0x3f }
 Call frame instruction encodings. More...
 
enum  Constants {
  DW_CHILDREN_no = 0x00, DW_CHILDREN_yes = 0x01, DW_EH_PE_absptr = 0x00, DW_EH_PE_omit = 0xff,
  DW_EH_PE_uleb128 = 0x01, DW_EH_PE_udata2 = 0x02, DW_EH_PE_udata4 = 0x03, DW_EH_PE_udata8 = 0x04,
  DW_EH_PE_sleb128 = 0x09, DW_EH_PE_sdata2 = 0x0A, DW_EH_PE_sdata4 = 0x0B, DW_EH_PE_sdata8 = 0x0C,
  DW_EH_PE_signed = 0x08, DW_EH_PE_pcrel = 0x10, DW_EH_PE_textrel = 0x20, DW_EH_PE_datarel = 0x30,
  DW_EH_PE_funcrel = 0x40, DW_EH_PE_aligned = 0x50, DW_EH_PE_indirect = 0x80
}
 
enum  LocationListEntry : unsigned char {
  DW_LLE_end_of_list = 0x00, DW_LLE_base_addressx = 0x01, DW_LLE_startx_endx = 0x02, DW_LLE_startx_length = 0x03,
  DW_LLE_offset_pair = 0x04, DW_LLE_default_location = 0x05, DW_LLE_base_address = 0x06, DW_LLE_start_end = 0x07,
  DW_LLE_start_length = 0x08
}
 Constants for location lists in DWARF v5. More...
 
enum  ApplePropertyAttributes
 Constants for the DW_APPLE_PROPERTY_attributes attribute. More...
 
enum  AcceleratorTable {
  DW_ATOM_null = 0u, DW_ATOM_die_offset = 1u, DW_ATOM_cu_offset = 2u, DW_ATOM_die_tag = 3u,
  DW_ATOM_type_flags = 4u, DW_FLAG_type_implementation = 2u, DW_hash_function_djb = 0u
}
 
enum  GDBIndexEntryKind {
  GIEK_NONE, GIEK_TYPE, GIEK_VARIABLE, GIEK_FUNCTION,
  GIEK_OTHER, GIEK_UNUSED5, GIEK_UNUSED6, GIEK_UNUSED7
}
 
enum  GDBIndexEntryLinkage { GIEL_EXTERNAL, GIEL_STATIC }
 
enum  DwarfFormat { DWARF32, DWARF64 }
 Constants that define the DWARF format as 32 or 64 bit. More...
 

Functions

bool isType (Tag T)
 
StringRef TagString (unsigned Tag)
 
StringRef ChildrenString (unsigned Children)
 
StringRef AttributeString (unsigned Attribute)
 
StringRef FormEncodingString (unsigned Encoding)
 
StringRef OperationEncodingString (unsigned Encoding)
 
StringRef AttributeEncodingString (unsigned Encoding)
 
StringRef DecimalSignString (unsigned Sign)
 
StringRef EndianityString (unsigned Endian)
 
StringRef AccessibilityString (unsigned Access)
 
StringRef VisibilityString (unsigned Visibility)
 
StringRef VirtualityString (unsigned Virtuality)
 
StringRef LanguageString (unsigned Language)
 
StringRef CaseString (unsigned Case)
 
StringRef ConventionString (unsigned Convention)
 
StringRef InlineCodeString (unsigned Code)
 
StringRef ArrayOrderString (unsigned Order)
 
StringRef DiscriminantString (unsigned Discriminant)
 
StringRef LNStandardString (unsigned Standard)
 
StringRef LNExtendedString (unsigned Encoding)
 
StringRef MacinfoString (unsigned Encoding)
 
StringRef CallFrameString (unsigned Encoding)
 
StringRef ApplePropertyString (unsigned)
 
StringRef AtomTypeString (unsigned Atom)
 
StringRef GDBIndexEntryKindString (GDBIndexEntryKind Kind)
 
StringRef GDBIndexEntryLinkageString (GDBIndexEntryLinkage Linkage)
 
unsigned getTag (StringRef TagString)
 
unsigned getOperationEncoding (StringRef OperationEncodingString)
 
unsigned getVirtuality (StringRef VirtualityString)
 
unsigned getLanguage (StringRef LanguageString)
 
unsigned getCallingConvention (StringRef LanguageString)
 
unsigned getAttributeEncoding (StringRef EncodingString)
 
unsigned getMacinfo (StringRef MacinfoString)
 
StringRef AttributeValueString (uint16_t Attr, unsigned Val)
 Returns the symbolic string representing Val when used as a value for attribute Attr. More...
 

Variables

const uint32_t DW_CIE_ID = UINT32_MAX
 
const uint64_t DW64_CIE_ID = UINT64_MAX
 

Enumeration Type Documentation

Enumerator
DW_ATOM_null 
DW_ATOM_die_offset 
DW_ATOM_cu_offset 
DW_ATOM_die_tag 
DW_ATOM_type_flags 
DW_FLAG_type_implementation 
DW_hash_function_djb 

Definition at line 309 of file Dwarf.h.

Enumerator
DW_ACCESS_public 
DW_ACCESS_protected 
DW_ACCESS_private 

Definition at line 140 of file Dwarf.h.

Constants for the DW_APPLE_PROPERTY_attributes attribute.

Keep this list in sync with clang's DeclSpec.h ObjCPropertyAttributeKind!

Definition at line 303 of file Dwarf.h.

Enumerator
DW_ORD_row_major 
DW_ORD_col_major 

Definition at line 197 of file Dwarf.h.

enum llvm::dwarf::Attribute : uint16_t

Attributes.

Enumerator
DW_AT_lo_user 
DW_AT_hi_user 

Definition at line 94 of file Dwarf.h.

Call frame instruction encodings.

Enumerator
DW_CFA_extended 
DW_CFA_lo_user 
DW_CFA_hi_user 

Definition at line 255 of file Dwarf.h.

Enumerator
DW_CC_lo_user 
DW_CC_hi_user 

Definition at line 181 of file Dwarf.h.

Enumerator
DW_ID_case_sensitive 
DW_ID_up_case 
DW_ID_down_case 
DW_ID_case_insensitive 

Definition at line 173 of file Dwarf.h.

Enumerator
DW_CHILDREN_no 
DW_CHILDREN_yes 
DW_EH_PE_absptr 
DW_EH_PE_omit 
DW_EH_PE_uleb128 
DW_EH_PE_udata2 
DW_EH_PE_udata4 
DW_EH_PE_udata8 
DW_EH_PE_sleb128 
DW_EH_PE_sdata2 
DW_EH_PE_sdata4 
DW_EH_PE_sdata8 
DW_EH_PE_signed 
DW_EH_PE_pcrel 
DW_EH_PE_textrel 
DW_EH_PE_datarel 
DW_EH_PE_funcrel 
DW_EH_PE_aligned 
DW_EH_PE_indirect 

Definition at line 264 of file Dwarf.h.

Enumerator
DW_DS_unsigned 
DW_DS_leading_overpunch 
DW_DS_trailing_overpunch 
DW_DS_leading_separate 
DW_DS_trailing_separate 

Definition at line 122 of file Dwarf.h.

Enumerator
DW_DEFAULTED_max 

Definition at line 160 of file Dwarf.h.

Enumerator
DW_DSC_label 
DW_DSC_range 

Definition at line 203 of file Dwarf.h.

Constants that define the DWARF format as 32 or 64 bit.

Enumerator
DWARF32 
DWARF64 

Definition at line 440 of file Dwarf.h.

Enumerator
DW_END_default 
DW_END_big 
DW_END_little 
DW_END_lo_user 
DW_END_hi_user 

Definition at line 131 of file Dwarf.h.

enum llvm::dwarf::Form : uint16_t
Enumerator
DW_FORM_lo_user 

Not specified by DWARF.

Definition at line 101 of file Dwarf.h.

Enumerator
GIEK_NONE 
GIEK_TYPE 
GIEK_VARIABLE 
GIEK_FUNCTION 
GIEK_OTHER 
GIEK_UNUSED5 
GIEK_UNUSED6 
GIEK_UNUSED7 

Definition at line 331 of file Dwarf.h.

Enumerator
GIEL_EXTERNAL 
GIEL_STATIC 

Definition at line 342 of file Dwarf.h.

Enumerator
DW_INL_not_inlined 
DW_INL_inlined 
DW_INL_declared_not_inlined 
DW_INL_declared_inlined 

Definition at line 189 of file Dwarf.h.

Line Number Extended Opcode Encodings.

Enumerator
DW_LNE_lo_user 
DW_LNE_hi_user 

Definition at line 216 of file Dwarf.h.

Line Number Standard Opcode Encodings.

Definition at line 210 of file Dwarf.h.

Enumerator
DW_LNCT_lo_user 
DW_LNCT_hi_user 

Definition at line 223 of file Dwarf.h.

Enumerator
DW_TAG_invalid 
DW_VIRTUALITY_invalid 
DW_MACINFO_invalid 
DWARF_VERSION 
DW_PUBTYPES_VERSION 
DW_PUBNAMES_VERSION 
DW_ARANGES_VERSION 

Definition at line 39 of file Dwarf.h.

Enumerator
DW_OP_lo_user 
DW_OP_hi_user 
DW_OP_LLVM_fragment 

Only used in LLVM metadata.

Definition at line 107 of file Dwarf.h.

Constants for location lists in DWARF v5.

Enumerator
DW_LLE_end_of_list 
DW_LLE_base_addressx 
DW_LLE_startx_endx 
DW_LLE_startx_length 
DW_LLE_offset_pair 
DW_LLE_default_location 
DW_LLE_base_address 
DW_LLE_start_end 
DW_LLE_start_length 

Definition at line 289 of file Dwarf.h.

Enumerator
DW_MACINFO_define 
DW_MACINFO_undef 
DW_MACINFO_start_file 
DW_MACINFO_end_file 
DW_MACINFO_vendor_ext 

Definition at line 230 of file Dwarf.h.

DWARF v5 macro information entry type encodings.

Enumerator
DW_MACRO_lo_user 
DW_MACRO_hi_user 

Definition at line 240 of file Dwarf.h.

DWARF v5 range list entry encoding values.

Definition at line 248 of file Dwarf.h.

Enumerator
DW_LANG_lo_user 
DW_LANG_hi_user 

Definition at line 166 of file Dwarf.h.

enum llvm::dwarf::Tag : uint16_t
Enumerator
DW_TAG_lo_user 
DW_TAG_hi_user 
DW_TAG_user_base 

Definition at line 57 of file Dwarf.h.

Enumerator
DW_ATE_lo_user 
DW_ATE_hi_user 

Definition at line 115 of file Dwarf.h.

Enumerator
DW_VIRTUALITY_max 

Definition at line 154 of file Dwarf.h.

Enumerator
DW_VIS_local 
DW_VIS_exported 
DW_VIS_qualified 

Definition at line 147 of file Dwarf.h.

Function Documentation

StringRef llvm::dwarf::AttributeValueString ( uint16_t  Attr,
unsigned  Val 
)

Returns the symbolic string representing Val when used as a value for attribute Attr.

Definition at line 356 of file Dwarf.cpp.

References AccessibilityString(), ArrayOrderString(), AttributeEncodingString(), CaseString(), ConventionString(), DecimalSignString(), DiscriminantString(), EndianityString(), InlineCodeString(), LanguageString(), VirtualityString(), and VisibilityString().

bool llvm::dwarf::isType ( Tag  T)
inline

Definition at line 65 of file Dwarf.h.

Referenced by llvm::DwarfUnit::getOrCreateStaticMemberDIE().

Variable Documentation

const uint64_t llvm::dwarf::DW64_CIE_ID = UINT64_MAX

Definition at line 55 of file Dwarf.h.

Referenced by llvm::DWARFDebugFrame::parse().

const uint32_t llvm::dwarf::DW_CIE_ID = UINT32_MAX

Definition at line 54 of file Dwarf.h.

Referenced by llvm::DWARFDebugFrame::parse().