DWARFDefines.h revision 258054
1//===-- DWARFDefines.h ------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef SymbolFileDWARF_DWARFDefines_h_ 11#define SymbolFileDWARF_DWARFDefines_h_ 12 13#include <stdint.h> 14#include "lldb/Core/dwarf.h" 15 16namespace lldb_private { 17 18typedef uint32_t DRC_class; // Holds DRC_* class bitfields 19 20enum DW_TAG_Category 21{ 22 TagCategoryVariable, 23 TagCategoryType, 24 TagCategoryProgram, 25 kNumTagCategories 26}; 27 28typedef enum DW_TAG_Category DW_TAG_CategoryEnum; 29 30const char *DW_TAG_value_to_name (uint32_t val); 31 32DW_TAG_CategoryEnum get_tag_category (uint16_t tag); 33 34const char *DW_CHILDREN_value_to_name (uint8_t val); 35 36const char *DW_AT_value_to_name (uint32_t val); 37 38const char *DW_FORM_value_to_name (uint32_t val); 39 40const char *DW_OP_value_to_name (uint32_t val); 41 42DRC_class DW_OP_value_to_class (uint32_t val); 43 44const char *DW_ATE_value_to_name (uint32_t val); 45 46const char *DW_ACCESS_value_to_name (uint32_t val); 47 48const char *DW_VIS_value_to_name (uint32_t val); 49 50const char *DW_VIRTUALITY_value_to_name (uint32_t val); 51 52const char *DW_LANG_value_to_name (uint32_t val); 53 54const char *DW_ID_value_to_name (uint32_t val); 55 56const char *DW_CC_value_to_name (uint32_t val); 57 58const char *DW_INL_value_to_name (uint32_t val); 59 60const char *DW_ORD_value_to_name (uint32_t val); 61 62const char *DW_DSC_value_to_name (uint32_t val); 63 64const char *DW_LNS_value_to_name (uint32_t val); 65 66const char *DW_LNE_value_to_name (uint32_t val); 67 68const char *DW_MACINFO_value_to_name (uint32_t val); 69 70const char *DW_CFA_value_to_name (uint32_t val); 71 72const char *DW_GNU_EH_PE_value_to_name (uint32_t val); 73 74/* These DRC are entirely our own construction, 75 although they are derived from various comments in the DWARF standard. 76 Most of these are not useful to the parser, but the DW_AT and DW_FORM 77 classes should prove to be usable in some fashion. */ 78 79#define DRC_0x65 0x1 80#define DRC_ADDRESS 0x2 81#define DRC_BLOCK 0x4 82#define DRC_CONSTANT 0x8 83#define DRC_DWARFv3 0x10 84#define DRC_FLAG 0x20 85#define DRC_INDIRECT_SPECIAL 0x40 86#define DRC_LINEPTR 0x80 87#define DRC_LOCEXPR 0x100 88#define DRC_LOCLISTPTR 0x200 89#define DRC_MACPTR 0x400 90#define DRC_ONEOPERAND 0x800 91#define DRC_OPERANDONE_1BYTE_DELTA 0x1000 92#define DRC_OPERANDONE_2BYTE_DELTA 0x2000 93#define DRC_OPERANDONE_4BYTE_DELTA 0x4000 94#define DRC_OPERANDONE_ADDRESS 0x8000 95#define DRC_OPERANDONE_BLOCK 0x10000 96#define DRC_OPERANDONE_SLEB128_OFFSET 0x20000 97#define DRC_OPERANDONE_ULEB128_OFFSET 0x40000 98#define DRC_OPERANDONE_ULEB128_REGISTER 0x80000 99#define DRC_OPERANDTWO_BLOCK 0x100000 100#define DRC_OPERANDTWO_SLEB128_OFFSET 0x200000 101#define DRC_OPERANDTWO_ULEB128_OFFSET 0x400000 102#define DRC_OPERANDTWO_ULEB128_REGISTER 0x800000 103#define DRC_OPERNADONE_ULEB128_REGISTER 0x1000000 104#define DRC_RANGELISTPTR 0x2000000 105#define DRC_REFERENCE 0x4000000 106#define DRC_STRING 0x8000000 107#define DRC_TWOOPERANDS 0x10000000 108#define DRC_VENDOR_GNU 0x20000000 109#define DRC_VENDOR_MIPS 0x40000000 110#define DRC_ZEROOPERANDS 0x80000000 111 112} // namespace lldb_private 113 114 115#endif // SymbolFileDWARF_DWARFDefines_h_ 116