comparison include/dwarf2.h @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents b7f97abdc517
children 04ced10e8804
comparison
equal deleted inserted replaced
65:65488c3d617d 67:f6334be47118
42 published Dec 20, 2005, available from: http://dwarf.freestandards.org. */ 42 published Dec 20, 2005, available from: http://dwarf.freestandards.org. */
43 43
44 /* This file is shared between GCC and GDB, and should not contain 44 /* This file is shared between GCC and GDB, and should not contain
45 prototypes. */ 45 prototypes. */
46 46
47 #ifndef _ELF_DWARF2_H 47 #ifndef _DWARF2_H
48 #define _ELF_DWARF2_H 48 #define _DWARF2_H
49
50 /* Structure found in the .debug_line section. */
51 typedef struct
52 {
53 unsigned char li_length [4];
54 unsigned char li_version [2];
55 unsigned char li_prologue_length [4];
56 unsigned char li_min_insn_length [1];
57 unsigned char li_default_is_stmt [1];
58 unsigned char li_line_base [1];
59 unsigned char li_line_range [1];
60 unsigned char li_opcode_base [1];
61 }
62 DWARF2_External_LineInfo;
63
64 typedef struct
65 {
66 unsigned long li_length;
67 unsigned short li_version;
68 unsigned int li_prologue_length;
69 unsigned char li_min_insn_length;
70 unsigned char li_max_ops_per_insn;
71 unsigned char li_default_is_stmt;
72 int li_line_base;
73 unsigned char li_line_range;
74 unsigned char li_opcode_base;
75 }
76 DWARF2_Internal_LineInfo;
77
78 /* Structure found in .debug_pubnames section. */
79 typedef struct
80 {
81 unsigned char pn_length [4];
82 unsigned char pn_version [2];
83 unsigned char pn_offset [4];
84 unsigned char pn_size [4];
85 }
86 DWARF2_External_PubNames;
87
88 typedef struct
89 {
90 unsigned long pn_length;
91 unsigned short pn_version;
92 unsigned long pn_offset;
93 unsigned long pn_size;
94 }
95 DWARF2_Internal_PubNames;
96
97 /* Structure found in .debug_info section. */
98 typedef struct
99 {
100 unsigned char cu_length [4];
101 unsigned char cu_version [2];
102 unsigned char cu_abbrev_offset [4];
103 unsigned char cu_pointer_size [1];
104 }
105 DWARF2_External_CompUnit;
106
107 typedef struct
108 {
109 unsigned long cu_length;
110 unsigned short cu_version;
111 unsigned long cu_abbrev_offset;
112 unsigned char cu_pointer_size;
113 }
114 DWARF2_Internal_CompUnit;
115
116 typedef struct
117 {
118 unsigned char ar_length [4];
119 unsigned char ar_version [2];
120 unsigned char ar_info_offset [4];
121 unsigned char ar_pointer_size [1];
122 unsigned char ar_segment_size [1];
123 }
124 DWARF2_External_ARange;
125
126 typedef struct
127 {
128 unsigned long ar_length;
129 unsigned short ar_version;
130 unsigned long ar_info_offset;
131 unsigned char ar_pointer_size;
132 unsigned char ar_segment_size;
133 }
134 DWARF2_Internal_ARange;
135
136 49
137 /* Tag names and codes. */ 50 /* Tag names and codes. */
138 enum dwarf_tag 51 enum dwarf_tag
139 { 52 {
140 DW_TAG_padding = 0x00, 53 DW_TAG_padding = 0x00,
204 DW_TAG_lo_user = 0x4080, 117 DW_TAG_lo_user = 0x4080,
205 DW_TAG_hi_user = 0xffff, 118 DW_TAG_hi_user = 0xffff,
206 119
207 /* SGI/MIPS Extensions. */ 120 /* SGI/MIPS Extensions. */
208 DW_TAG_MIPS_loop = 0x4081, 121 DW_TAG_MIPS_loop = 0x4081,
122
209 /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */ 123 /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
210 DW_TAG_HP_array_descriptor = 0x4090, 124 DW_TAG_HP_array_descriptor = 0x4090,
125 DW_TAG_HP_Bliss_field = 0x4091,
126 DW_TAG_HP_Bliss_field_set = 0x4092,
127
211 /* GNU extensions. */ 128 /* GNU extensions. */
212 DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */ 129 DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
213 DW_TAG_function_template = 0x4102, /* For C++. */ 130 DW_TAG_function_template = 0x4102, /* For C++. */
214 DW_TAG_class_template = 0x4103, /* For C++. */ 131 DW_TAG_class_template = 0x4103, /* For C++. */
215 DW_TAG_GNU_BINCL = 0x4104, 132 DW_TAG_GNU_BINCL = 0x4104,
371 DW_AT_const_expr = 0x6c, 288 DW_AT_const_expr = 0x6c,
372 DW_AT_enum_class = 0x6d, 289 DW_AT_enum_class = 0x6d,
373 DW_AT_linkage_name = 0x6e, 290 DW_AT_linkage_name = 0x6e,
374 291
375 DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */ 292 DW_AT_lo_user = 0x2000, /* Implementation-defined range start. */
376 DW_AT_hi_user = 0x3ff0, /* Implementation-defined range end. */ 293 DW_AT_hi_user = 0x3fff, /* Implementation-defined range end. */
377 294
378 /* SGI/MIPS extensions. */ 295 /* SGI/MIPS extensions. */
379 DW_AT_MIPS_fde = 0x2001, 296 DW_AT_MIPS_fde = 0x2001,
380 DW_AT_MIPS_loop_begin = 0x2002, 297 DW_AT_MIPS_loop_begin = 0x2002,
381 DW_AT_MIPS_tail_loop_begin = 0x2003, 298 DW_AT_MIPS_tail_loop_begin = 0x2003,
388 DW_AT_MIPS_clone_origin = 0x200a, 305 DW_AT_MIPS_clone_origin = 0x200a,
389 DW_AT_MIPS_has_inlines = 0x200b, 306 DW_AT_MIPS_has_inlines = 0x200b,
390 /* HP extensions. */ 307 /* HP extensions. */
391 DW_AT_HP_block_index = 0x2000, 308 DW_AT_HP_block_index = 0x2000,
392 DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */ 309 DW_AT_HP_unmodifiable = 0x2001, /* Same as DW_AT_MIPS_fde. */
310 DW_AT_HP_prologue = 0x2005, /* Same as DW_AT_MIPS_loop_unroll. */
311 DW_AT_HP_epilogue = 0x2008, /* Same as DW_AT_MIPS_stride. */
393 DW_AT_HP_actuals_stmt_list = 0x2010, 312 DW_AT_HP_actuals_stmt_list = 0x2010,
394 DW_AT_HP_proc_per_section = 0x2011, 313 DW_AT_HP_proc_per_section = 0x2011,
395 DW_AT_HP_raw_data_ptr = 0x2012, 314 DW_AT_HP_raw_data_ptr = 0x2012,
396 DW_AT_HP_pass_by_reference = 0x2013, 315 DW_AT_HP_pass_by_reference = 0x2013,
397 DW_AT_HP_opt_level = 0x2014, 316 DW_AT_HP_opt_level = 0x2014,
400 DW_AT_HP_cold_region_low_pc = 0x2017, 319 DW_AT_HP_cold_region_low_pc = 0x2017,
401 DW_AT_HP_cold_region_high_pc = 0x2018, 320 DW_AT_HP_cold_region_high_pc = 0x2018,
402 DW_AT_HP_all_variables_modifiable = 0x2019, 321 DW_AT_HP_all_variables_modifiable = 0x2019,
403 DW_AT_HP_linkage_name = 0x201a, 322 DW_AT_HP_linkage_name = 0x201a,
404 DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */ 323 DW_AT_HP_prof_flags = 0x201b, /* In comp unit of procs_info for -g. */
324 DW_AT_HP_unit_name = 0x201f,
325 DW_AT_HP_unit_size = 0x2020,
326 DW_AT_HP_widened_byte_size = 0x2021,
327 DW_AT_HP_definition_points = 0x2022,
328 DW_AT_HP_default_location = 0x2023,
329 DW_AT_HP_is_result_param = 0x2029,
330
405 /* GNU extensions. */ 331 /* GNU extensions. */
406 DW_AT_sf_names = 0x2101, 332 DW_AT_sf_names = 0x2101,
407 DW_AT_src_info = 0x2102, 333 DW_AT_src_info = 0x2102,
408 DW_AT_mac_info = 0x2103, 334 DW_AT_mac_info = 0x2103,
409 DW_AT_src_coords = 0x2104, 335 DW_AT_src_coords = 0x2104,
607 /* GNU extensions. */ 533 /* GNU extensions. */
608 DW_OP_GNU_push_tls_address = 0xe0, 534 DW_OP_GNU_push_tls_address = 0xe0,
609 /* The following is for marking variables that are uninitialized. */ 535 /* The following is for marking variables that are uninitialized. */
610 DW_OP_GNU_uninit = 0xf0, 536 DW_OP_GNU_uninit = 0xf0,
611 DW_OP_GNU_encoded_addr = 0xf1, 537 DW_OP_GNU_encoded_addr = 0xf1,
538 DW_OP_GNU_implicit_pointer = 0xf2,
612 /* HP extensions. */ 539 /* HP extensions. */
613 DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */ 540 DW_OP_HP_unknown = 0xe0, /* Ouch, the same as GNU_push_tls_address. */
614 DW_OP_HP_is_value = 0xe1, 541 DW_OP_HP_is_value = 0xe1,
615 DW_OP_HP_fltconst4 = 0xe2, 542 DW_OP_HP_fltconst4 = 0xe2,
616 DW_OP_HP_fltconst8 = 0xe3, 543 DW_OP_HP_fltconst8 = 0xe3,
639 DW_ATE_numeric_string = 0xb, 566 DW_ATE_numeric_string = 0xb,
640 DW_ATE_edited = 0xc, 567 DW_ATE_edited = 0xc,
641 DW_ATE_signed_fixed = 0xd, 568 DW_ATE_signed_fixed = 0xd,
642 DW_ATE_unsigned_fixed = 0xe, 569 DW_ATE_unsigned_fixed = 0xe,
643 DW_ATE_decimal_float = 0xf, 570 DW_ATE_decimal_float = 0xf,
571 /* DWARF 4. */
572 DW_ATE_UTF = 0x10,
644 573
645 DW_ATE_lo_user = 0x80, 574 DW_ATE_lo_user = 0x80,
646 DW_ATE_hi_user = 0xff, 575 DW_ATE_hi_user = 0xff,
647 576
648 /* HP extensions. */ 577 /* HP extensions. */
649 DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */ 578 DW_ATE_HP_float80 = 0x80, /* Floating-point (80 bit). */
650 DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */ 579 DW_ATE_HP_complex_float80 = 0x81, /* Complex floating-point (80 bit). */
651 DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */ 580 DW_ATE_HP_float128 = 0x82, /* Floating-point (128 bit). */
652 DW_ATE_HP_complex_float128 = 0x83, /* Complex floating-point (128 bit). */ 581 DW_ATE_HP_complex_float128 = 0x83, /* Complex fp (128 bit). */
653 DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */ 582 DW_ATE_HP_floathpintel = 0x84, /* Floating-point (82 bit IA64). */
654 DW_ATE_HP_imaginary_float80 = 0x85, 583 DW_ATE_HP_imaginary_float80 = 0x85,
655 DW_ATE_HP_imaginary_float128 = 0x86 584 DW_ATE_HP_imaginary_float128 = 0x86,
585 DW_ATE_HP_VAX_float = 0x88, /* F or G floating. */
586 DW_ATE_HP_VAX_float_d = 0x89, /* D floating. */
587 DW_ATE_HP_packed_decimal = 0x8a, /* Cobol. */
588 DW_ATE_HP_zoned_decimal = 0x8b, /* Cobol. */
589 DW_ATE_HP_edited = 0x8c, /* Cobol. */
590 DW_ATE_HP_signed_fixed = 0x8d, /* Cobol. */
591 DW_ATE_HP_unsigned_fixed = 0x8e, /* Cobol. */
592 DW_ATE_HP_VAX_complex_float = 0x8f, /* F or G floating complex. */
593 DW_ATE_HP_VAX_complex_float_d = 0x90 /* D floating complex. */
656 }; 594 };
657 595
658 /* Decimal sign encodings. */ 596 /* Decimal sign encodings. */
659 enum dwarf_decimal_sign_encoding 597 enum dwarf_decimal_sign_encoding
660 { 598 {
727 665
728 DW_CC_lo_user = 0x40, 666 DW_CC_lo_user = 0x40,
729 DW_CC_hi_user = 0xff, 667 DW_CC_hi_user = 0xff,
730 668
731 DW_CC_GNU_renesas_sh = 0x40, 669 DW_CC_GNU_renesas_sh = 0x40,
732 DW_CC_GNU_borland_fastcall_i386 = 0x41 670 DW_CC_GNU_borland_fastcall_i386 = 0x41,
671
672 /* This DW_CC_ value is not currently generated by any toolchain. It is
673 used internally to GDB to indicate OpenCL C functions that have been
674 compiled with the IBM XL C for OpenCL compiler and use a non-platform
675 calling convention for passing OpenCL C vector types. This value may
676 be changed freely as long as it does not conflict with any other DW_CC_
677 value defined here. */
678 DW_CC_GDB_IBM_OpenCL = 0xff
733 }; 679 };
734 680
735 /* Inline attribute. */ 681 /* Inline attribute. */
736 enum dwarf_inline_attribute 682 enum dwarf_inline_attribute
737 { 683 {
783 DW_LNE_HP_set_sequence = 0x16, 729 DW_LNE_HP_set_sequence = 0x16,
784 DW_LNE_HP_negate_post_semantics = 0x17, 730 DW_LNE_HP_negate_post_semantics = 0x17,
785 DW_LNE_HP_negate_function_exit = 0x18, 731 DW_LNE_HP_negate_function_exit = 0x18,
786 DW_LNE_HP_negate_front_end_logical = 0x19, 732 DW_LNE_HP_negate_front_end_logical = 0x19,
787 DW_LNE_HP_define_proc = 0x20, 733 DW_LNE_HP_define_proc = 0x20,
734 DW_LNE_HP_source_file_correlation = 0x80,
788 735
789 DW_LNE_lo_user = 0x80, 736 DW_LNE_lo_user = 0x80,
790 DW_LNE_hi_user = 0xff 737 DW_LNE_hi_user = 0xff
791 }; 738 };
792 739
866 DW_LANG_ObjC_plus_plus = 0x0011, 813 DW_LANG_ObjC_plus_plus = 0x0011,
867 DW_LANG_UPC = 0x0012, 814 DW_LANG_UPC = 0x0012,
868 DW_LANG_D = 0x0013, 815 DW_LANG_D = 0x0013,
869 /* DWARF 4. */ 816 /* DWARF 4. */
870 DW_LANG_Python = 0x0014, 817 DW_LANG_Python = 0x0014,
818 /* DWARF 5. */
819 DW_LANG_Go = 0x0016,
871 820
872 DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */ 821 DW_LANG_lo_user = 0x8000, /* Implementation-defined range start. */
873 DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */ 822 DW_LANG_hi_user = 0xffff, /* Implementation-defined range start. */
874 823
875 /* MIPS. */ 824 /* MIPS. */
876 DW_LANG_Mips_Assembler = 0x8001, 825 DW_LANG_Mips_Assembler = 0x8001,
877 /* UPC. */ 826 /* UPC. */
878 DW_LANG_Upc = 0x8765 827 DW_LANG_Upc = 0x8765,
828 /* HP extensions. */
829 DW_LANG_HP_Bliss = 0x8003,
830 DW_LANG_HP_Basic91 = 0x8004,
831 DW_LANG_HP_Pascal91 = 0x8005,
832 DW_LANG_HP_IMacro = 0x8006,
833 DW_LANG_HP_Assembler = 0x8007
879 }; 834 };
880 835
881 /* Names and codes for macro information. */ 836 /* Names and codes for macro information. */
882 enum dwarf_macinfo_record_type 837 enum dwarf_macinfo_record_type
883 { 838 {
909 #define DW_EH_PE_funcrel 0x40 864 #define DW_EH_PE_funcrel 0x40
910 #define DW_EH_PE_aligned 0x50 865 #define DW_EH_PE_aligned 0x50
911 866
912 #define DW_EH_PE_indirect 0x80 867 #define DW_EH_PE_indirect 0x80
913 868
914 #endif /* _ELF_DWARF2_H */ 869 #endif /* _DWARF2_H */