Add DWARF 2.1 attributes

This commit is contained in:
Nick Clifton 2001-06-29 14:17:31 +00:00
parent 2113bf6c1a
commit 1e8b3ce280
2 changed files with 56 additions and 36 deletions

View File

@ -1,3 +1,7 @@
2001-06-29 James Cownie <jcownie@etnus.com>
* dwarf2.h: Add DWARF 2.1 attribues.
2001-06-15 Per Bothner <per@bothner.com>
* dwarf2.h: Partial merge with gcc version.

View File

@ -1,6 +1,7 @@
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
Copyright 1992, 1993, 1995, 1996, 1999, 2000 Free Software Foundation, Inc.
Copyright 1992, 1993, 1995, 1996, 1999, 2000, 2001
Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
Office (AJPO), Florida State Unviversity and Silicon Graphics Inc.
@ -29,7 +30,9 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
Programming Languages Special Interest Group (UI/PLSIG) and distributed
by UNIX International. Copies of this specification are available from
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
This file also now contains definitions from the DWARF 2.1 specification. */
/* This file is shared between GCC and GDB, and should not contain
prototypes. */
@ -124,7 +127,6 @@ DWARF2_Internal_ARange;
/* Tag names and codes. */
enum dwarf_tag
{
DW_TAG_padding = 0x00,
@ -175,10 +177,10 @@ enum dwarf_tag
DW_TAG_variant_part = 0x33,
DW_TAG_variable = 0x34,
DW_TAG_volatile_type = 0x35,
/* SGI/MIPS Extensions */
/* SGI/MIPS Extensions. */
DW_TAG_MIPS_loop = 0x4081,
/* GNU extensions */
DW_TAG_format_label = 0x4101, /* for FORTRAN 77 and Fortran 90 */
/* GNU extensions. */
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
DW_TAG_function_template = 0x4102, /* for C++ */
DW_TAG_class_template = 0x4103, /* for C++ */
DW_TAG_GNU_BINCL = 0x4104,
@ -188,7 +190,7 @@ enum dwarf_tag
#define DW_TAG_lo_user 0x4080
#define DW_TAG_hi_user 0xffff
/* flag that tells whether entry has a child or not */
/* Flag that tells whether entry has a child or not. */
#define DW_children_no 0
#define DW_children_yes 1
@ -284,7 +286,20 @@ enum dwarf_attribute
DW_AT_variable_parameter = 0x4b,
DW_AT_virtuality = 0x4c,
DW_AT_vtable_elem_location = 0x4d,
/* SGI/MIPS Extensions */
/* DWARF 2.1 values. */
DW_AT_allocated = 0x4e,
DW_AT_associated = 0x4f,
DW_AT_data_location = 0x50,
DW_AT_stride = 0x51,
DW_AT_entry_pc = 0x52,
DW_AT_use_UTF8 = 0x53,
DW_AT_extension = 0x54,
DW_AT_ranges = 0x55,
DW_AT_trampoline = 0x56,
DW_AT_call_column = 0x57,
DW_AT_call_file = 0x58,
DW_AT_call_line = 0x59,
/* SGI/MIPS Extensions. */
DW_AT_MIPS_fde = 0x2001,
DW_AT_MIPS_loop_begin = 0x2002,
DW_AT_MIPS_tail_loop_begin = 0x2003,
@ -297,19 +312,18 @@ enum dwarf_attribute
DW_AT_MIPS_clone_origin = 0x200a,
DW_AT_MIPS_has_inlines = 0x200b,
/* GNU extensions. */
DW_AT_sf_names = 0x2101,
DW_AT_src_info = 0x2102,
DW_AT_mac_info = 0x2103,
DW_AT_sf_names = 0x2101,
DW_AT_src_info = 0x2102,
DW_AT_mac_info = 0x2103,
DW_AT_src_coords = 0x2104,
DW_AT_body_begin = 0x2105,
DW_AT_body_end = 0x2106
DW_AT_body_end = 0x2106
};
#define DW_AT_lo_user 0x2000 /* implementation-defined range start */
#define DW_AT_hi_user 0x3ff0 /* implementation-defined range end */
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
#define DW_AT_hi_user 0x3ff0 /* Implementation-defined range end. */
/* Location atom names and codes. */
enum dwarf_location_atom
{
DW_OP_addr = 0x03,
@ -456,14 +470,18 @@ enum dwarf_location_atom
DW_OP_piece = 0x93,
DW_OP_deref_size = 0x94,
DW_OP_xderef_size = 0x95,
DW_OP_nop = 0x96
DW_OP_nop = 0x96,
/* DWARF 2.1 extensions. */
DW_OP_push_object_address = 0x97,
DW_OP_call2 = 0x98, /* 1 2-byte offset of DIE. */
DW_OP_call4 = 0x99, /* 1 4-byte offset of DIE. */
DW_OP_calli = 0x9a
};
#define DW_OP_lo_user 0x80 /* implementation-defined range start */
#define DW_OP_hi_user 0xff /* implementation-defined range end */
#define DW_OP_lo_user 0x80 /* Implementation-defined range start. */
#define DW_OP_hi_user 0xff /* Implementation-defined range end. */
/* Type encodings. */
enum dwarf_type
{
DW_ATE_void = 0x0,
@ -487,7 +505,7 @@ enum dwarf_array_dim_ordering
DW_ORD_col_major = 1
};
/* access attribute */
/* Access attribute. */
enum dwarf_access_attribute
{
DW_ACCESS_public = 1,
@ -495,7 +513,7 @@ enum dwarf_access_attribute
DW_ACCESS_private = 3
};
/* visibility */
/* Visibility. */
enum dwarf_visibility_attribute
{
DW_VIS_local = 1,
@ -503,7 +521,7 @@ enum dwarf_visibility_attribute
DW_VIS_qualified = 3
};
/* virtuality */
/* Virtuality. */
enum dwarf_virtuality_attribute
{
DW_VIRTUALITY_none = 0,
@ -511,7 +529,7 @@ enum dwarf_virtuality_attribute
DW_VIRTUALITY_pure_virtual = 2
};
/* case sensitivity */
/* Case sensitivity. */
enum dwarf_id_case
{
DW_ID_case_sensitive = 0,
@ -520,7 +538,7 @@ enum dwarf_id_case
DW_ID_case_insensitive = 3
};
/* calling convention */
/* Calling convention. */
enum dwarf_calling_convention
{
DW_CC_normal = 0x1,
@ -531,7 +549,7 @@ enum dwarf_calling_convention
#define DW_CC_lo_user 0x40
#define DW_CC_hi_user 0xff
/* inline attribute */
/* Inline attribute. */
enum dwarf_inline_attribute
{
DW_INL_not_inlined = 0,
@ -540,14 +558,14 @@ enum dwarf_inline_attribute
DW_INL_declared_inlined = 3
};
/* discriminant lists */
/* Discriminant lists. */
enum dwarf_discrim_list
{
DW_DSC_label = 0,
DW_DSC_range = 1
};
/* line number opcodes */
/* Line number opcodes. */
enum dwarf_line_number_ops
{
DW_LNS_extended_op = 0,
@ -562,7 +580,7 @@ enum dwarf_line_number_ops
DW_LNS_fixed_advance_pc = 9
};
/* line number extended opcodes */
/* Line number extended opcodes. */
enum dwarf_line_number_x_ops
{
DW_LNE_end_sequence = 1,
@ -570,7 +588,7 @@ enum dwarf_line_number_x_ops
DW_LNE_define_file = 3
};
/* call frame information */
/* Call frame information. */
enum dwarf_call_frame_info
{
DW_CFA_advance_loc = 0x40,
@ -593,15 +611,15 @@ enum dwarf_call_frame_info
DW_CFA_def_cfa_offset = 0x0e,
DW_CFA_def_cfa_expression = 0x0f,
DW_CFA_expression = 0x10,
/* Dwarf 2.1 */
/* Dwarf 2.1. */
DW_CFA_offset_extended_sf = 0x11,
DW_CFA_def_cfa_sf = 0x12,
DW_CFA_def_cfa_offset_sf = 0x13,
/* SGI/MIPS specific */
/* SGI/MIPS specific. */
DW_CFA_MIPS_advance_loc8 = 0x1d,
/* GNU extensions */
/* GNU extensions. */
DW_CFA_GNU_window_save = 0x2d,
DW_CFA_GNU_args_size = 0x2e,
DW_CFA_GNU_negative_offset_extended = 0x2f
@ -620,7 +638,6 @@ enum dwarf_call_frame_info
#define DW_ADDR_none 0
/* Source language names and codes. */
enum dwarf_source_language
{
DW_LANG_C89 = 0x0001,
@ -638,11 +655,10 @@ enum dwarf_source_language
};
#define DW_LANG_lo_user 0x8000 /* implementation-defined range start */
#define DW_LANG_hi_user 0xffff /* implementation-defined range start */
#define DW_LANG_lo_user 0x8000 /* implementation-defined range start. */
#define DW_LANG_hi_user 0xffff /* implementation-defined range start. */
/* Names and codes for macro information. */
enum dwarf_macinfo_record_type
{
DW_MACINFO_define = 1,