//===-- DWARFDefines.h ------------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef SymbolFileDWARF_DWARFDefines_h_ #define SymbolFileDWARF_DWARFDefines_h_ #include #include #include "lldb/Core/dwarf.h" namespace lldb_private { typedef uint32_t DRC_class; // Holds DRC_* class bitfields enum DW_TAG_Category { TagCategoryVariable, TagCategoryType, TagCategoryProgram, kNumTagCategories }; typedef enum DW_TAG_Category DW_TAG_CategoryEnum; const char *DW_TAG_value_to_name (uint32_t val); DW_TAG_CategoryEnum get_tag_category (uint16_t tag); const char *DW_CHILDREN_value_to_name (uint8_t val); const char *DW_AT_value_to_name (uint32_t val); const char *DW_FORM_value_to_name (uint32_t val); const char *DW_OP_value_to_name (uint32_t val); DRC_class DW_OP_value_to_class (uint32_t val); const char *DW_ATE_value_to_name (uint32_t val); const char *DW_ACCESS_value_to_name (uint32_t val); const char *DW_VIS_value_to_name (uint32_t val); const char *DW_VIRTUALITY_value_to_name (uint32_t val); const char *DW_LANG_value_to_name (uint32_t val); const char *DW_ID_value_to_name (uint32_t val); const char *DW_CC_value_to_name (uint32_t val); const char *DW_INL_value_to_name (uint32_t val); const char *DW_ORD_value_to_name (uint32_t val); const char *DW_DSC_value_to_name (uint32_t val); const char *DW_LNS_value_to_name (uint32_t val); const char *DW_LNE_value_to_name (uint32_t val); const char *DW_MACINFO_value_to_name (uint32_t val); const char *DW_CFA_value_to_name (uint32_t val); const char *DW_GNU_EH_PE_value_to_name (uint32_t val); /* These DRC are entirely our own construction, although they are derived from various comments in the DWARF standard. Most of these are not useful to the parser, but the DW_AT and DW_FORM classes should prove to be usable in some fashion. */ #define DRC_0x65 0x1 #define DRC_ADDRESS 0x2 #define DRC_BLOCK 0x4 #define DRC_CONSTANT 0x8 #define DRC_DWARFv3 0x10 #define DRC_FLAG 0x20 #define DRC_INDIRECT_SPECIAL 0x40 #define DRC_LINEPTR 0x80 #define DRC_LOCEXPR 0x100 #define DRC_LOCLISTPTR 0x200 #define DRC_MACPTR 0x400 #define DRC_ONEOPERAND 0x800 #define DRC_OPERANDONE_1BYTE_DELTA 0x1000 #define DRC_OPERANDONE_2BYTE_DELTA 0x2000 #define DRC_OPERANDONE_4BYTE_DELTA 0x4000 #define DRC_OPERANDONE_ADDRESS 0x8000 #define DRC_OPERANDONE_BLOCK 0x10000 #define DRC_OPERANDONE_SLEB128_OFFSET 0x20000 #define DRC_OPERANDONE_ULEB128_OFFSET 0x40000 #define DRC_OPERANDONE_ULEB128_REGISTER 0x80000 #define DRC_OPERANDTWO_BLOCK 0x100000 #define DRC_OPERANDTWO_SLEB128_OFFSET 0x200000 #define DRC_OPERANDTWO_ULEB128_OFFSET 0x400000 #define DRC_OPERANDTWO_ULEB128_REGISTER 0x800000 #define DRC_OPERNADONE_ULEB128_REGISTER 0x1000000 #define DRC_RANGELISTPTR 0x2000000 #define DRC_REFERENCE 0x4000000 #define DRC_STRING 0x8000000 #define DRC_TWOOPERANDS 0x10000000 #define DRC_VENDOR_GNU 0x20000000 #define DRC_VENDOR_MIPS 0x40000000 #define DRC_ZEROOPERANDS 0x80000000 } // namespace lldb_private #endif // SymbolFileDWARF_DWARFDefines_h_