2010-06-09 00:52:24 +08:00
|
|
|
//===-- 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 liblldb_DWARFDefines_h_
|
|
|
|
#define liblldb_DWARFDefines_h_
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <stdbool.h>
|
|
|
|
#include "lldb/Core/dwarf.h"
|
|
|
|
|
2010-07-07 06:38:03 +08:00
|
|
|
namespace lldb_private {
|
2010-06-09 00:52:24 +08:00
|
|
|
|
|
|
|
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;
|
2010-11-10 07:46:37 +08:00
|
|
|
|
2010-06-09 00:52:24 +08:00
|
|
|
const char *DW_TAG_value_to_name (uint32_t val);
|
2010-11-10 07:46:37 +08:00
|
|
|
|
2010-06-09 00:52:24 +08:00
|
|
|
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);
|
2010-11-10 07:46:37 +08:00
|
|
|
|
2010-06-09 00:52:24 +08:00
|
|
|
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
|
|
|
|
|
2010-07-07 06:38:03 +08:00
|
|
|
} // namespace lldb_private
|
2010-06-09 00:52:24 +08:00
|
|
|
|
|
|
|
|
|
|
|
#endif // liblldb_DWARFDefines_h_
|