Mercurial > hg > CbC > CbC_gcc
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 */ |