Commit df7d2d80 by Eric Christopher

dwarf2.h: Sync with include/elf/dwarf2.h

2004-10-06  Eric Christopher  <echristo@redhat.com>

	* dwarf2.h: Sync with include/elf/dwarf2.h

From-SVN: r88626
parent 55e9452e
2004-10-06 Eric Christopher <echristo@redhat.com>
* dwarf2.h: Sync with include/elf/dwarf2.h
2004-10-06 Daniel Berlin <dberlin@dberlin.org> 2004-10-06 Daniel Berlin <dberlin@dberlin.org>
* tree-pretty-print.c (dump_generic_node): Fix printing of BINFO * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO
......
/* Declarations and definitions of codes relating to the DWARF2 symbolic /* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format. debugging information format.
Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002 Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
Free Software Foundation, Inc. 2003, 2004 Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
Office (AJPO), Florida State University and Silicon Graphics Inc. Office (AJPO), Florida State University and Silicon Graphics Inc.
...@@ -10,22 +10,22 @@ ...@@ -10,22 +10,22 @@
Derived from the DWARF 1 implementation written by Ron Guilmette Derived from the DWARF 1 implementation written by Ron Guilmette
(rfg@netcom.com), November 1990. (rfg@netcom.com), November 1990.
This file is part of GCC. This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later Software Foundation; either version 2, or (at your option) any later
version. version.
GCC is distributed in the hope that it will be useful, but WITHOUT ANY GCC is distributed in the hope that it will be useful, but WITHOUT
WARRANTY; without even the implied warranty of MERCHANTABILITY or ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
for more details. License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */ 02111-1307, USA. */
/* This file is derived from the DWARF specification (a public document) /* This file is derived from the DWARF specification (a public document)
Revision 2.0.0 (July 27, 1993) developed by the UNIX International Revision 2.0.0 (July 27, 1993) developed by the UNIX International
...@@ -41,6 +41,92 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA ...@@ -41,6 +41,92 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#ifndef GCC_DWARF2_H #ifndef GCC_DWARF2_H
#define GCC_DWARF2_H #define GCC_DWARF2_H
/* Structure found in the .debug_line section. */
typedef struct
{
unsigned char li_length [4];
unsigned char li_version [2];
unsigned char li_prologue_length [4];
unsigned char li_min_insn_length [1];
unsigned char li_default_is_stmt [1];
unsigned char li_line_base [1];
unsigned char li_line_range [1];
unsigned char li_opcode_base [1];
}
DWARF2_External_LineInfo;
typedef struct
{
unsigned long li_length;
unsigned short li_version;
unsigned int li_prologue_length;
unsigned char li_min_insn_length;
unsigned char li_default_is_stmt;
int li_line_base;
unsigned char li_line_range;
unsigned char li_opcode_base;
}
DWARF2_Internal_LineInfo;
/* Structure found in .debug_pubnames section. */
typedef struct
{
unsigned char pn_length [4];
unsigned char pn_version [2];
unsigned char pn_offset [4];
unsigned char pn_size [4];
}
DWARF2_External_PubNames;
typedef struct
{
unsigned long pn_length;
unsigned short pn_version;
unsigned long pn_offset;
unsigned long pn_size;
}
DWARF2_Internal_PubNames;
/* Structure found in .debug_info section. */
typedef struct
{
unsigned char cu_length [4];
unsigned char cu_version [2];
unsigned char cu_abbrev_offset [4];
unsigned char cu_pointer_size [1];
}
DWARF2_External_CompUnit;
typedef struct
{
unsigned long cu_length;
unsigned short cu_version;
unsigned long cu_abbrev_offset;
unsigned char cu_pointer_size;
}
DWARF2_Internal_CompUnit;
typedef struct
{
unsigned char ar_length [4];
unsigned char ar_version [2];
unsigned char ar_info_offset [4];
unsigned char ar_pointer_size [1];
unsigned char ar_segment_size [1];
}
DWARF2_External_ARange;
typedef struct
{
unsigned long ar_length;
unsigned short ar_version;
unsigned long ar_info_offset;
unsigned char ar_pointer_size;
unsigned char ar_segment_size;
}
DWARF2_Internal_ARange;
/* Tag names and codes. */ /* Tag names and codes. */
enum dwarf_tag enum dwarf_tag
{ {
...@@ -103,12 +189,21 @@ enum dwarf_tag ...@@ -103,12 +189,21 @@ enum dwarf_tag
DW_TAG_imported_unit = 0x3d, DW_TAG_imported_unit = 0x3d,
/* SGI/MIPS Extensions. */ /* SGI/MIPS Extensions. */
DW_TAG_MIPS_loop = 0x4081, DW_TAG_MIPS_loop = 0x4081,
/* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
DW_TAG_HP_array_descriptor = 0x4090,
/* GNU extensions. */ /* GNU extensions. */
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */ DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
DW_TAG_function_template = 0x4102, /* For C++. */ DW_TAG_function_template = 0x4102, /* For C++. */
DW_TAG_class_template = 0x4103, /* For C++. */ DW_TAG_class_template = 0x4103, /* For C++. */
DW_TAG_GNU_BINCL = 0x4104, DW_TAG_GNU_BINCL = 0x4104,
DW_TAG_GNU_EINCL = 0x4105 DW_TAG_GNU_EINCL = 0x4105,
/* Extensions for UPC. See: http://upc.gwu.edu/~upc. */
DW_TAG_upc_shared_type = 0x8765,
DW_TAG_upc_strict_type = 0x8766,
DW_TAG_upc_relaxed_type = 0x8767,
/* PGI (STMicroelectronics) extensions. No documentation available. */
DW_TAG_PGI_kanji_type = 0xA000,
DW_TAG_PGI_interface_block = 0xA020
}; };
#define DW_TAG_lo_user 0x4080 #define DW_TAG_lo_user 0x4080
...@@ -145,7 +240,6 @@ enum dwarf_form ...@@ -145,7 +240,6 @@ enum dwarf_form
}; };
/* Attribute names and codes. */ /* Attribute names and codes. */
enum dwarf_attribute enum dwarf_attribute
{ {
DW_AT_sibling = 0x01, DW_AT_sibling = 0x01,
...@@ -223,7 +317,7 @@ enum dwarf_attribute ...@@ -223,7 +317,7 @@ enum dwarf_attribute
DW_AT_call_column = 0x57, DW_AT_call_column = 0x57,
DW_AT_call_file = 0x58, DW_AT_call_file = 0x58,
DW_AT_call_line = 0x59, DW_AT_call_line = 0x59,
/* SGI/MIPS Extensions. */ /* SGI/MIPS extensions. */
DW_AT_MIPS_fde = 0x2001, DW_AT_MIPS_fde = 0x2001,
DW_AT_MIPS_loop_begin = 0x2002, DW_AT_MIPS_loop_begin = 0x2002,
DW_AT_MIPS_tail_loop_begin = 0x2003, DW_AT_MIPS_tail_loop_begin = 0x2003,
...@@ -235,6 +329,21 @@ enum dwarf_attribute ...@@ -235,6 +329,21 @@ enum dwarf_attribute
DW_AT_MIPS_abstract_name = 0x2009, DW_AT_MIPS_abstract_name = 0x2009,
DW_AT_MIPS_clone_origin = 0x200a, DW_AT_MIPS_clone_origin = 0x200a,
DW_AT_MIPS_has_inlines = 0x200b, DW_AT_MIPS_has_inlines = 0x200b,
/* HP extensions. */
DW_AT_HP_block_index = 0x2000,
DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */
DW_AT_HP_actuals_stmt_list = 0x2010,
DW_AT_HP_proc_per_section = 0x2011,
DW_AT_HP_raw_data_ptr = 0x2012,
DW_AT_HP_pass_by_reference = 0x2013,
DW_AT_HP_opt_level = 0x2014,
DW_AT_HP_prof_version_id = 0x2015,
DW_AT_HP_opt_flags = 0x2016,
DW_AT_HP_cold_region_low_pc = 0x2017,
DW_AT_HP_cold_region_high_pc = 0x2018,
DW_AT_HP_all_variables_modifiable = 0x2019,
DW_AT_HP_linkage_name = 0x201a,
DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */
/* GNU extensions. */ /* GNU extensions. */
DW_AT_sf_names = 0x2101, DW_AT_sf_names = 0x2101,
DW_AT_src_info = 0x2102, DW_AT_src_info = 0x2102,
...@@ -243,8 +352,14 @@ enum dwarf_attribute ...@@ -243,8 +352,14 @@ enum dwarf_attribute
DW_AT_body_begin = 0x2105, DW_AT_body_begin = 0x2105,
DW_AT_body_end = 0x2106, DW_AT_body_end = 0x2106,
DW_AT_GNU_vector = 0x2107, DW_AT_GNU_vector = 0x2107,
/* VMS Extensions. */ /* VMS extensions. */
DW_AT_VMS_rtnbeg_pd_address = 0x2201 DW_AT_VMS_rtnbeg_pd_address = 0x2201,
/* UPC extension. */
DW_AT_upc_threads_scaled = 0x3210,
/* PGI (STMicroelectronics) extensions. */
DW_AT_PGI_lbase = 0x3a00,
DW_AT_PGI_soffset = 0x3a01,
DW_AT_PGI_lstride = 0x3a02
}; };
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */ #define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
...@@ -404,7 +519,15 @@ enum dwarf_location_atom ...@@ -404,7 +519,15 @@ enum dwarf_location_atom
DW_OP_call4 = 0x99, DW_OP_call4 = 0x99,
DW_OP_call_ref = 0x9a, DW_OP_call_ref = 0x9a,
/* GNU extensions. */ /* GNU extensions. */
DW_OP_GNU_push_tls_address = 0xe0 DW_OP_GNU_push_tls_address = 0xe0,
/* HP extensions. */
DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
DW_OP_HP_is_value = 0xe1,
DW_OP_HP_fltconst4 = 0xe2,
DW_OP_HP_fltconst8 = 0xe3,
DW_OP_HP_mod_range = 0xe4,
DW_OP_HP_unmod_range = 0xe5,
DW_OP_HP_tls = 0xe6
}; };
#define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */ #define DW_OP_lo_user 0xe0 /* Implementation-defined range start. */
...@@ -423,7 +546,15 @@ enum dwarf_type ...@@ -423,7 +546,15 @@ enum dwarf_type
DW_ATE_unsigned = 0x7, DW_ATE_unsigned = 0x7,
DW_ATE_unsigned_char = 0x8, DW_ATE_unsigned_char = 0x8,
/* DWARF 3. */ /* DWARF 3. */
DW_ATE_imaginary_float = 0x9 DW_ATE_imaginary_float = 0x9,
/* HP extensions. */
DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */
DW_ATE_HP_complex_float128 = 0x83, /* Complex floating-point (128 bit). */
DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */
DW_ATE_HP_imaginary_float80 = 0x85,
DW_ATE_HP_imaginary_float128 = 0x86
}; };
#define DW_ATE_lo_user 0x80 #define DW_ATE_lo_user 0x80
...@@ -521,7 +652,18 @@ enum dwarf_line_number_x_ops ...@@ -521,7 +652,18 @@ enum dwarf_line_number_x_ops
{ {
DW_LNE_end_sequence = 1, DW_LNE_end_sequence = 1,
DW_LNE_set_address = 2, DW_LNE_set_address = 2,
DW_LNE_define_file = 3 DW_LNE_define_file = 3,
/* HP extensions. */
DW_LNE_HP_negate_is_UV_update = 0x11,
DW_LNE_HP_push_context = 0x12,
DW_LNE_HP_pop_context = 0x13,
DW_LNE_HP_set_file_line_column = 0x14,
DW_LNE_HP_set_routine_name = 0x15,
DW_LNE_HP_set_sequence = 0x16,
DW_LNE_HP_negate_post_semantics = 0x17,
DW_LNE_HP_negate_function_exit = 0x18,
DW_LNE_HP_negate_front_end_logical = 0x19,
DW_LNE_HP_define_proc = 0x20
}; };
/* Call frame information. */ /* Call frame information. */
...@@ -545,17 +687,14 @@ enum dwarf_call_frame_info ...@@ -545,17 +687,14 @@ enum dwarf_call_frame_info
DW_CFA_def_cfa = 0x0c, DW_CFA_def_cfa = 0x0c,
DW_CFA_def_cfa_register = 0x0d, DW_CFA_def_cfa_register = 0x0d,
DW_CFA_def_cfa_offset = 0x0e, DW_CFA_def_cfa_offset = 0x0e,
/* DWARF 3. */ /* DWARF 3. */
DW_CFA_def_cfa_expression = 0x0f, DW_CFA_def_cfa_expression = 0x0f,
DW_CFA_expression = 0x10, DW_CFA_expression = 0x10,
DW_CFA_offset_extended_sf = 0x11, DW_CFA_offset_extended_sf = 0x11,
DW_CFA_def_cfa_sf = 0x12, DW_CFA_def_cfa_sf = 0x12,
DW_CFA_def_cfa_offset_sf = 0x13, DW_CFA_def_cfa_offset_sf = 0x13,
/* SGI/MIPS specific. */ /* SGI/MIPS specific. */
DW_CFA_MIPS_advance_loc8 = 0x1d, DW_CFA_MIPS_advance_loc8 = 0x1d,
/* GNU extensions. */ /* GNU extensions. */
DW_CFA_GNU_window_save = 0x2d, DW_CFA_GNU_window_save = 0x2d,
DW_CFA_GNU_args_size = 0x2e, DW_CFA_GNU_args_size = 0x2e,
...@@ -566,8 +705,8 @@ enum dwarf_call_frame_info ...@@ -566,8 +705,8 @@ enum dwarf_call_frame_info
#define DW_CIE_VERSION 1 #define DW_CIE_VERSION 1
#define DW_CFA_extended 0 #define DW_CFA_extended 0
#define DW_CFA_low_user 0x1c #define DW_CFA_lo_user 0x1c
#define DW_CFA_high_user 0x3f #define DW_CFA_hi_user 0x3f
#define DW_CHILDREN_no 0x00 #define DW_CHILDREN_no 0x00
#define DW_CHILDREN_yes 0x01 #define DW_CHILDREN_yes 0x01
...@@ -593,10 +732,11 @@ enum dwarf_source_language ...@@ -593,10 +732,11 @@ enum dwarf_source_language
DW_LANG_Ada95 = 0x000d, DW_LANG_Ada95 = 0x000d,
DW_LANG_Fortran95 = 0x000e, DW_LANG_Fortran95 = 0x000e,
/* MIPS. */ /* MIPS. */
DW_LANG_Mips_Assembler = 0x8001 DW_LANG_Mips_Assembler = 0x8001,
/* UPC. */
DW_LANG_Upc = 0x8765
}; };
#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */ #define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */
#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */ #define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment