dwarf2.def 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709
  1. /* -*- c -*-
  2. Declarations and definitions of codes relating to the DWARF2 and
  3. DWARF3 symbolic debugging information formats.
  4. Copyright (C) 1992, 1993, 1995, 1996, 1997, 1999, 2000, 2001, 2002,
  5. 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
  6. Free Software Foundation, Inc.
  7. Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
  8. Office (AJPO), Florida State University and Silicon Graphics Inc.
  9. provided support for this effort -- June 21, 1995.
  10. Derived from the DWARF 1 implementation written by Ron Guilmette
  11. (rfg@netcom.com), November 1990.
  12. This file is part of GCC.
  13. GCC is free software; you can redistribute it and/or modify it under
  14. the terms of the GNU General Public License as published by the Free
  15. Software Foundation; either version 3, or (at your option) any later
  16. version.
  17. GCC is distributed in the hope that it will be useful, but WITHOUT
  18. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  19. or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
  20. License for more details.
  21. Under Section 7 of GPL version 3, you are granted additional
  22. permissions described in the GCC Runtime Library Exception, version
  23. 3.1, as published by the Free Software Foundation.
  24. You should have received a copy of the GNU General Public License and
  25. a copy of the GCC Runtime Library Exception along with this program;
  26. see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
  27. <http://www.gnu.org/licenses/>. */
  28. /* This file is derived from the DWARF specification (a public document)
  29. Revision 2.0.0 (July 27, 1993) developed by the UNIX International
  30. Programming Languages Special Interest Group (UI/PLSIG) and distributed
  31. by UNIX International. Copies of this specification are available from
  32. UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
  33. This file also now contains definitions from the DWARF 3 specification
  34. published Dec 20, 2005, available from: http://dwarf.freestandards.org.
  35. This file also now contains definitions from the DWARF 4
  36. specification, available from: http://dwarfstd.org/ */
  37. /* This file declares various DWARF-related constants using a set of
  38. macros which can be redefined by the including file.
  39. The macros are in sections. Each section corresponds to a single
  40. set of DWARF constants and has a corresponding key. The key is
  41. used in all the macro names.
  42. The sections are TAG (for DW_TAG_ constants), FORM (DW_FORM_), AT
  43. (DW_AT_), OP (DW_OP_), ATE (DW_ATE_), and CFA (DW_CFA_).
  44. Using TAG as an example, the following macros may be used for each
  45. key:
  46. DW_FIRST_TAG(name, value) - Introduce the first DW_TAG constant.
  47. DW_TAG(name, value) - Define a subsequent constant.
  48. DW_TAG_DUP(name, value) - Define a subsequent constant whose value
  49. is a duplicate of some other constant. Not all keys use the _DUP
  50. macro form. If more than one name shares a value, then the base
  51. (DW_TAG) form will be the preferred name and DW_TAG_DUP will hold
  52. any alternate names.
  53. DW_END_TAG - Invoked at the end of the DW_TAG constants. */
  54. DW_FIRST_TAG (DW_TAG_padding, 0x00)
  55. DW_TAG (DW_TAG_array_type, 0x01)
  56. DW_TAG (DW_TAG_class_type, 0x02)
  57. DW_TAG (DW_TAG_entry_point, 0x03)
  58. DW_TAG (DW_TAG_enumeration_type, 0x04)
  59. DW_TAG (DW_TAG_formal_parameter, 0x05)
  60. DW_TAG (DW_TAG_imported_declaration, 0x08)
  61. DW_TAG (DW_TAG_label, 0x0a)
  62. DW_TAG (DW_TAG_lexical_block, 0x0b)
  63. DW_TAG (DW_TAG_member, 0x0d)
  64. DW_TAG (DW_TAG_pointer_type, 0x0f)
  65. DW_TAG (DW_TAG_reference_type, 0x10)
  66. DW_TAG (DW_TAG_compile_unit, 0x11)
  67. DW_TAG (DW_TAG_string_type, 0x12)
  68. DW_TAG (DW_TAG_structure_type, 0x13)
  69. DW_TAG (DW_TAG_subroutine_type, 0x15)
  70. DW_TAG (DW_TAG_typedef, 0x16)
  71. DW_TAG (DW_TAG_union_type, 0x17)
  72. DW_TAG (DW_TAG_unspecified_parameters, 0x18)
  73. DW_TAG (DW_TAG_variant, 0x19)
  74. DW_TAG (DW_TAG_common_block, 0x1a)
  75. DW_TAG (DW_TAG_common_inclusion, 0x1b)
  76. DW_TAG (DW_TAG_inheritance, 0x1c)
  77. DW_TAG (DW_TAG_inlined_subroutine, 0x1d)
  78. DW_TAG (DW_TAG_module, 0x1e)
  79. DW_TAG (DW_TAG_ptr_to_member_type, 0x1f)
  80. DW_TAG (DW_TAG_set_type, 0x20)
  81. DW_TAG (DW_TAG_subrange_type, 0x21)
  82. DW_TAG (DW_TAG_with_stmt, 0x22)
  83. DW_TAG (DW_TAG_access_declaration, 0x23)
  84. DW_TAG (DW_TAG_base_type, 0x24)
  85. DW_TAG (DW_TAG_catch_block, 0x25)
  86. DW_TAG (DW_TAG_const_type, 0x26)
  87. DW_TAG (DW_TAG_constant, 0x27)
  88. DW_TAG (DW_TAG_enumerator, 0x28)
  89. DW_TAG (DW_TAG_file_type, 0x29)
  90. DW_TAG (DW_TAG_friend, 0x2a)
  91. DW_TAG (DW_TAG_namelist, 0x2b)
  92. DW_TAG (DW_TAG_namelist_item, 0x2c)
  93. DW_TAG (DW_TAG_packed_type, 0x2d)
  94. DW_TAG (DW_TAG_subprogram, 0x2e)
  95. DW_TAG (DW_TAG_template_type_param, 0x2f)
  96. DW_TAG (DW_TAG_template_value_param, 0x30)
  97. DW_TAG (DW_TAG_thrown_type, 0x31)
  98. DW_TAG (DW_TAG_try_block, 0x32)
  99. DW_TAG (DW_TAG_variant_part, 0x33)
  100. DW_TAG (DW_TAG_variable, 0x34)
  101. DW_TAG (DW_TAG_volatile_type, 0x35)
  102. /* DWARF 3. */
  103. DW_TAG (DW_TAG_dwarf_procedure, 0x36)
  104. DW_TAG (DW_TAG_restrict_type, 0x37)
  105. DW_TAG (DW_TAG_interface_type, 0x38)
  106. DW_TAG (DW_TAG_namespace, 0x39)
  107. DW_TAG (DW_TAG_imported_module, 0x3a)
  108. DW_TAG (DW_TAG_unspecified_type, 0x3b)
  109. DW_TAG (DW_TAG_partial_unit, 0x3c)
  110. DW_TAG (DW_TAG_imported_unit, 0x3d)
  111. DW_TAG (DW_TAG_condition, 0x3f)
  112. DW_TAG (DW_TAG_shared_type, 0x40)
  113. /* DWARF 4. */
  114. DW_TAG (DW_TAG_type_unit, 0x41)
  115. DW_TAG (DW_TAG_rvalue_reference_type, 0x42)
  116. DW_TAG (DW_TAG_template_alias, 0x43)
  117. /* DWARF 5. */
  118. DW_TAG (DW_TAG_atomic_type, 0x47)
  119. DW_TAG_DUP (DW_TAG_lo_user, 0x4080)
  120. DW_TAG_DUP (DW_TAG_hi_user, 0xffff)
  121. /* SGI/MIPS Extensions. */
  122. DW_TAG (DW_TAG_MIPS_loop, 0x4081)
  123. /* HP extensions. See: ftp://ftp.hp.com/pub/lang/tools/WDB/wdb-4.0.tar.gz . */
  124. DW_TAG (DW_TAG_HP_array_descriptor, 0x4090)
  125. DW_TAG (DW_TAG_HP_Bliss_field, 0x4091)
  126. DW_TAG (DW_TAG_HP_Bliss_field_set, 0x4092)
  127. /* GNU extensions. */
  128. DW_TAG (DW_TAG_format_label, 0x4101) /* For FORTRAN 77 and Fortran 90. */
  129. DW_TAG (DW_TAG_function_template, 0x4102) /* For C++. */
  130. DW_TAG (DW_TAG_class_template, 0x4103) /* For C++. */
  131. DW_TAG (DW_TAG_GNU_BINCL, 0x4104)
  132. DW_TAG (DW_TAG_GNU_EINCL, 0x4105)
  133. /* Template template parameter.
  134. See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
  135. DW_TAG (DW_TAG_GNU_template_template_param, 0x4106)
  136. /* Template parameter pack extension, specified at
  137. http://wiki.dwarfstd.org/index.php?title=C%2B%2B0x:_Variadic_templates
  138. The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
  139. are properly part of DWARF 5. */
  140. DW_TAG (DW_TAG_GNU_template_parameter_pack, 0x4107)
  141. DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108)
  142. /* The GNU call site extension, specified at
  143. http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open .
  144. The values of these two TAGS are in the DW_TAG_GNU_* space until the tags
  145. are properly part of DWARF 5. */
  146. DW_TAG (DW_TAG_GNU_call_site, 0x4109)
  147. DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a)
  148. /* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */
  149. DW_TAG (DW_TAG_upc_shared_type, 0x8765)
  150. DW_TAG (DW_TAG_upc_strict_type, 0x8766)
  151. DW_TAG (DW_TAG_upc_relaxed_type, 0x8767)
  152. /* PGI (STMicroelectronics) extensions. No documentation available. */
  153. DW_TAG (DW_TAG_PGI_kanji_type, 0xA000)
  154. DW_TAG (DW_TAG_PGI_interface_block, 0xA020)
  155. DW_END_TAG
  156. DW_FIRST_FORM (DW_FORM_addr, 0x01)
  157. DW_FORM (DW_FORM_block2, 0x03)
  158. DW_FORM (DW_FORM_block4, 0x04)
  159. DW_FORM (DW_FORM_data2, 0x05)
  160. DW_FORM (DW_FORM_data4, 0x06)
  161. DW_FORM (DW_FORM_data8, 0x07)
  162. DW_FORM (DW_FORM_string, 0x08)
  163. DW_FORM (DW_FORM_block, 0x09)
  164. DW_FORM (DW_FORM_block1, 0x0a)
  165. DW_FORM (DW_FORM_data1, 0x0b)
  166. DW_FORM (DW_FORM_flag, 0x0c)
  167. DW_FORM (DW_FORM_sdata, 0x0d)
  168. DW_FORM (DW_FORM_strp, 0x0e)
  169. DW_FORM (DW_FORM_udata, 0x0f)
  170. DW_FORM (DW_FORM_ref_addr, 0x10)
  171. DW_FORM (DW_FORM_ref1, 0x11)
  172. DW_FORM (DW_FORM_ref2, 0x12)
  173. DW_FORM (DW_FORM_ref4, 0x13)
  174. DW_FORM (DW_FORM_ref8, 0x14)
  175. DW_FORM (DW_FORM_ref_udata, 0x15)
  176. DW_FORM (DW_FORM_indirect, 0x16)
  177. /* DWARF 4. */
  178. DW_FORM (DW_FORM_sec_offset, 0x17)
  179. DW_FORM (DW_FORM_exprloc, 0x18)
  180. DW_FORM (DW_FORM_flag_present, 0x19)
  181. DW_FORM (DW_FORM_ref_sig8, 0x20)
  182. /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
  183. DW_FORM (DW_FORM_GNU_addr_index, 0x1f01)
  184. DW_FORM (DW_FORM_GNU_str_index, 0x1f02)
  185. /* Extensions for DWZ multifile.
  186. See http://www.dwarfstd.org/ShowIssue.php?issue=120604.1&type=open . */
  187. DW_FORM (DW_FORM_GNU_ref_alt, 0x1f20)
  188. DW_FORM (DW_FORM_GNU_strp_alt, 0x1f21)
  189. DW_END_FORM
  190. DW_FIRST_AT (DW_AT_sibling, 0x01)
  191. DW_AT (DW_AT_location, 0x02)
  192. DW_AT (DW_AT_name, 0x03)
  193. DW_AT (DW_AT_ordering, 0x09)
  194. DW_AT (DW_AT_subscr_data, 0x0a)
  195. DW_AT (DW_AT_byte_size, 0x0b)
  196. DW_AT (DW_AT_bit_offset, 0x0c)
  197. DW_AT (DW_AT_bit_size, 0x0d)
  198. DW_AT (DW_AT_element_list, 0x0f)
  199. DW_AT (DW_AT_stmt_list, 0x10)
  200. DW_AT (DW_AT_low_pc, 0x11)
  201. DW_AT (DW_AT_high_pc, 0x12)
  202. DW_AT (DW_AT_language, 0x13)
  203. DW_AT (DW_AT_member, 0x14)
  204. DW_AT (DW_AT_discr, 0x15)
  205. DW_AT (DW_AT_discr_value, 0x16)
  206. DW_AT (DW_AT_visibility, 0x17)
  207. DW_AT (DW_AT_import, 0x18)
  208. DW_AT (DW_AT_string_length, 0x19)
  209. DW_AT (DW_AT_common_reference, 0x1a)
  210. DW_AT (DW_AT_comp_dir, 0x1b)
  211. DW_AT (DW_AT_const_value, 0x1c)
  212. DW_AT (DW_AT_containing_type, 0x1d)
  213. DW_AT (DW_AT_default_value, 0x1e)
  214. DW_AT (DW_AT_inline, 0x20)
  215. DW_AT (DW_AT_is_optional, 0x21)
  216. DW_AT (DW_AT_lower_bound, 0x22)
  217. DW_AT (DW_AT_producer, 0x25)
  218. DW_AT (DW_AT_prototyped, 0x27)
  219. DW_AT (DW_AT_return_addr, 0x2a)
  220. DW_AT (DW_AT_start_scope, 0x2c)
  221. DW_AT (DW_AT_bit_stride, 0x2e)
  222. DW_AT (DW_AT_upper_bound, 0x2f)
  223. DW_AT (DW_AT_abstract_origin, 0x31)
  224. DW_AT (DW_AT_accessibility, 0x32)
  225. DW_AT (DW_AT_address_class, 0x33)
  226. DW_AT (DW_AT_artificial, 0x34)
  227. DW_AT (DW_AT_base_types, 0x35)
  228. DW_AT (DW_AT_calling_convention, 0x36)
  229. DW_AT (DW_AT_count, 0x37)
  230. DW_AT (DW_AT_data_member_location, 0x38)
  231. DW_AT (DW_AT_decl_column, 0x39)
  232. DW_AT (DW_AT_decl_file, 0x3a)
  233. DW_AT (DW_AT_decl_line, 0x3b)
  234. DW_AT (DW_AT_declaration, 0x3c)
  235. DW_AT (DW_AT_discr_list, 0x3d)
  236. DW_AT (DW_AT_encoding, 0x3e)
  237. DW_AT (DW_AT_external, 0x3f)
  238. DW_AT (DW_AT_frame_base, 0x40)
  239. DW_AT (DW_AT_friend, 0x41)
  240. DW_AT (DW_AT_identifier_case, 0x42)
  241. DW_AT (DW_AT_macro_info, 0x43)
  242. DW_AT (DW_AT_namelist_items, 0x44)
  243. DW_AT (DW_AT_priority, 0x45)
  244. DW_AT (DW_AT_segment, 0x46)
  245. DW_AT (DW_AT_specification, 0x47)
  246. DW_AT (DW_AT_static_link, 0x48)
  247. DW_AT (DW_AT_type, 0x49)
  248. DW_AT (DW_AT_use_location, 0x4a)
  249. DW_AT (DW_AT_variable_parameter, 0x4b)
  250. DW_AT (DW_AT_virtuality, 0x4c)
  251. DW_AT (DW_AT_vtable_elem_location, 0x4d)
  252. /* DWARF 3 values. */
  253. DW_AT (DW_AT_allocated, 0x4e)
  254. DW_AT (DW_AT_associated, 0x4f)
  255. DW_AT (DW_AT_data_location, 0x50)
  256. DW_AT (DW_AT_byte_stride, 0x51)
  257. DW_AT (DW_AT_entry_pc, 0x52)
  258. DW_AT (DW_AT_use_UTF8, 0x53)
  259. DW_AT (DW_AT_extension, 0x54)
  260. DW_AT (DW_AT_ranges, 0x55)
  261. DW_AT (DW_AT_trampoline, 0x56)
  262. DW_AT (DW_AT_call_column, 0x57)
  263. DW_AT (DW_AT_call_file, 0x58)
  264. DW_AT (DW_AT_call_line, 0x59)
  265. DW_AT (DW_AT_description, 0x5a)
  266. DW_AT (DW_AT_binary_scale, 0x5b)
  267. DW_AT (DW_AT_decimal_scale, 0x5c)
  268. DW_AT (DW_AT_small, 0x5d)
  269. DW_AT (DW_AT_decimal_sign, 0x5e)
  270. DW_AT (DW_AT_digit_count, 0x5f)
  271. DW_AT (DW_AT_picture_string, 0x60)
  272. DW_AT (DW_AT_mutable, 0x61)
  273. DW_AT (DW_AT_threads_scaled, 0x62)
  274. DW_AT (DW_AT_explicit, 0x63)
  275. DW_AT (DW_AT_object_pointer, 0x64)
  276. DW_AT (DW_AT_endianity, 0x65)
  277. DW_AT (DW_AT_elemental, 0x66)
  278. DW_AT (DW_AT_pure, 0x67)
  279. DW_AT (DW_AT_recursive, 0x68)
  280. /* DWARF 4. */
  281. DW_AT (DW_AT_signature, 0x69)
  282. DW_AT (DW_AT_main_subprogram, 0x6a)
  283. DW_AT (DW_AT_data_bit_offset, 0x6b)
  284. DW_AT (DW_AT_const_expr, 0x6c)
  285. DW_AT (DW_AT_enum_class, 0x6d)
  286. DW_AT (DW_AT_linkage_name, 0x6e)
  287. /* DWARF 5. */
  288. DW_AT (DW_AT_noreturn, 0x87)
  289. DW_AT_DUP (DW_AT_lo_user, 0x2000) /* Implementation-defined range start. */
  290. DW_AT_DUP (DW_AT_hi_user, 0x3fff) /* Implementation-defined range end. */
  291. /* SGI/MIPS extensions. */
  292. DW_AT (DW_AT_MIPS_fde, 0x2001)
  293. DW_AT (DW_AT_MIPS_loop_begin, 0x2002)
  294. DW_AT (DW_AT_MIPS_tail_loop_begin, 0x2003)
  295. DW_AT (DW_AT_MIPS_epilog_begin, 0x2004)
  296. DW_AT (DW_AT_MIPS_loop_unroll_factor, 0x2005)
  297. DW_AT (DW_AT_MIPS_software_pipeline_depth, 0x2006)
  298. DW_AT (DW_AT_MIPS_linkage_name, 0x2007)
  299. DW_AT (DW_AT_MIPS_stride, 0x2008)
  300. DW_AT (DW_AT_MIPS_abstract_name, 0x2009)
  301. DW_AT (DW_AT_MIPS_clone_origin, 0x200a)
  302. DW_AT (DW_AT_MIPS_has_inlines, 0x200b)
  303. /* HP extensions. */
  304. DW_AT (DW_AT_HP_block_index, 0x2000)
  305. DW_AT_DUP (DW_AT_HP_unmodifiable, 0x2001) /* Same as DW_AT_MIPS_fde. */
  306. DW_AT_DUP (DW_AT_HP_prologue, 0x2005) /* Same as DW_AT_MIPS_loop_unroll. */
  307. DW_AT_DUP (DW_AT_HP_epilogue, 0x2008) /* Same as DW_AT_MIPS_stride. */
  308. DW_AT (DW_AT_HP_actuals_stmt_list, 0x2010)
  309. DW_AT (DW_AT_HP_proc_per_section, 0x2011)
  310. DW_AT (DW_AT_HP_raw_data_ptr, 0x2012)
  311. DW_AT (DW_AT_HP_pass_by_reference, 0x2013)
  312. DW_AT (DW_AT_HP_opt_level, 0x2014)
  313. DW_AT (DW_AT_HP_prof_version_id, 0x2015)
  314. DW_AT (DW_AT_HP_opt_flags, 0x2016)
  315. DW_AT (DW_AT_HP_cold_region_low_pc, 0x2017)
  316. DW_AT (DW_AT_HP_cold_region_high_pc, 0x2018)
  317. DW_AT (DW_AT_HP_all_variables_modifiable, 0x2019)
  318. DW_AT (DW_AT_HP_linkage_name, 0x201a)
  319. DW_AT (DW_AT_HP_prof_flags, 0x201b) /* In comp unit of procs_info for -g. */
  320. DW_AT (DW_AT_HP_unit_name, 0x201f)
  321. DW_AT (DW_AT_HP_unit_size, 0x2020)
  322. DW_AT (DW_AT_HP_widened_byte_size, 0x2021)
  323. DW_AT (DW_AT_HP_definition_points, 0x2022)
  324. DW_AT (DW_AT_HP_default_location, 0x2023)
  325. DW_AT (DW_AT_HP_is_result_param, 0x2029)
  326. /* GNU extensions. */
  327. DW_AT (DW_AT_sf_names, 0x2101)
  328. DW_AT (DW_AT_src_info, 0x2102)
  329. DW_AT (DW_AT_mac_info, 0x2103)
  330. DW_AT (DW_AT_src_coords, 0x2104)
  331. DW_AT (DW_AT_body_begin, 0x2105)
  332. DW_AT (DW_AT_body_end, 0x2106)
  333. DW_AT (DW_AT_GNU_vector, 0x2107)
  334. /* Thread-safety annotations.
  335. See http://gcc.gnu.org/wiki/ThreadSafetyAnnotation . */
  336. DW_AT (DW_AT_GNU_guarded_by, 0x2108)
  337. DW_AT (DW_AT_GNU_pt_guarded_by, 0x2109)
  338. DW_AT (DW_AT_GNU_guarded, 0x210a)
  339. DW_AT (DW_AT_GNU_pt_guarded, 0x210b)
  340. DW_AT (DW_AT_GNU_locks_excluded, 0x210c)
  341. DW_AT (DW_AT_GNU_exclusive_locks_required, 0x210d)
  342. DW_AT (DW_AT_GNU_shared_locks_required, 0x210e)
  343. /* One-definition rule violation detection.
  344. See http://gcc.gnu.org/wiki/DwarfSeparateTypeInfo . */
  345. DW_AT (DW_AT_GNU_odr_signature, 0x210f)
  346. /* Template template argument name.
  347. See http://gcc.gnu.org/wiki/TemplateParmsDwarf . */
  348. DW_AT (DW_AT_GNU_template_name, 0x2110)
  349. /* The GNU call site extension.
  350. See http://www.dwarfstd.org/ShowIssue.php?issue=100909.2&type=open . */
  351. DW_AT (DW_AT_GNU_call_site_value, 0x2111)
  352. DW_AT (DW_AT_GNU_call_site_data_value, 0x2112)
  353. DW_AT (DW_AT_GNU_call_site_target, 0x2113)
  354. DW_AT (DW_AT_GNU_call_site_target_clobbered, 0x2114)
  355. DW_AT (DW_AT_GNU_tail_call, 0x2115)
  356. DW_AT (DW_AT_GNU_all_tail_call_sites, 0x2116)
  357. DW_AT (DW_AT_GNU_all_call_sites, 0x2117)
  358. DW_AT (DW_AT_GNU_all_source_call_sites, 0x2118)
  359. /* Section offset into .debug_macro section. */
  360. DW_AT (DW_AT_GNU_macros, 0x2119)
  361. /* Attribute for C++ deleted special member functions (= delete;). */
  362. DW_AT (DW_AT_GNU_deleted, 0x211a)
  363. /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
  364. DW_AT (DW_AT_GNU_dwo_name, 0x2130)
  365. DW_AT (DW_AT_GNU_dwo_id, 0x2131)
  366. DW_AT (DW_AT_GNU_ranges_base, 0x2132)
  367. DW_AT (DW_AT_GNU_addr_base, 0x2133)
  368. DW_AT (DW_AT_GNU_pubnames, 0x2134)
  369. DW_AT (DW_AT_GNU_pubtypes, 0x2135)
  370. /* Attribute for discriminator.
  371. See http://gcc.gnu.org/wiki/Discriminator */
  372. DW_AT (DW_AT_GNU_discriminator, 0x2136)
  373. /* VMS extensions. */
  374. DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201)
  375. /* GNAT extensions. */
  376. /* GNAT descriptive type.
  377. See http://gcc.gnu.org/wiki/DW_AT_GNAT_descriptive_type . */
  378. DW_AT (DW_AT_use_GNAT_descriptive_type, 0x2301)
  379. DW_AT (DW_AT_GNAT_descriptive_type, 0x2302)
  380. /* UPC extension. */
  381. DW_AT (DW_AT_upc_threads_scaled, 0x3210)
  382. /* PGI (STMicroelectronics) extensions. */
  383. DW_AT (DW_AT_PGI_lbase, 0x3a00)
  384. DW_AT (DW_AT_PGI_soffset, 0x3a01)
  385. DW_AT (DW_AT_PGI_lstride, 0x3a02)
  386. /* Apple extensions. */
  387. DW_AT (DW_AT_APPLE_optimized, 0x3fe1)
  388. DW_AT (DW_AT_APPLE_flags, 0x3fe2)
  389. DW_AT (DW_AT_APPLE_isa, 0x3fe3)
  390. DW_AT (DW_AT_APPLE_block, 0x3fe4)
  391. DW_AT (DW_AT_APPLE_major_runtime_vers, 0x3fe5)
  392. DW_AT (DW_AT_APPLE_runtime_class, 0x3fe6)
  393. DW_AT (DW_AT_APPLE_omit_frame_ptr, 0x3fe7)
  394. DW_AT (DW_AT_APPLE_property_name, 0x3fe8)
  395. DW_AT (DW_AT_APPLE_property_getter, 0x3fe9)
  396. DW_AT (DW_AT_APPLE_property_setter, 0x3fea)
  397. DW_AT (DW_AT_APPLE_property_attribute, 0x3feb)
  398. DW_AT (DW_AT_APPLE_objc_complete_type, 0x3fec)
  399. DW_AT (DW_AT_APPLE_property, 0x3fed)
  400. DW_END_AT
  401. DW_FIRST_OP (DW_OP_addr, 0x03)
  402. DW_OP (DW_OP_deref, 0x06)
  403. DW_OP (DW_OP_const1u, 0x08)
  404. DW_OP (DW_OP_const1s, 0x09)
  405. DW_OP (DW_OP_const2u, 0x0a)
  406. DW_OP (DW_OP_const2s, 0x0b)
  407. DW_OP (DW_OP_const4u, 0x0c)
  408. DW_OP (DW_OP_const4s, 0x0d)
  409. DW_OP (DW_OP_const8u, 0x0e)
  410. DW_OP (DW_OP_const8s, 0x0f)
  411. DW_OP (DW_OP_constu, 0x10)
  412. DW_OP (DW_OP_consts, 0x11)
  413. DW_OP (DW_OP_dup, 0x12)
  414. DW_OP (DW_OP_drop, 0x13)
  415. DW_OP (DW_OP_over, 0x14)
  416. DW_OP (DW_OP_pick, 0x15)
  417. DW_OP (DW_OP_swap, 0x16)
  418. DW_OP (DW_OP_rot, 0x17)
  419. DW_OP (DW_OP_xderef, 0x18)
  420. DW_OP (DW_OP_abs, 0x19)
  421. DW_OP (DW_OP_and, 0x1a)
  422. DW_OP (DW_OP_div, 0x1b)
  423. DW_OP (DW_OP_minus, 0x1c)
  424. DW_OP (DW_OP_mod, 0x1d)
  425. DW_OP (DW_OP_mul, 0x1e)
  426. DW_OP (DW_OP_neg, 0x1f)
  427. DW_OP (DW_OP_not, 0x20)
  428. DW_OP (DW_OP_or, 0x21)
  429. DW_OP (DW_OP_plus, 0x22)
  430. DW_OP (DW_OP_plus_uconst, 0x23)
  431. DW_OP (DW_OP_shl, 0x24)
  432. DW_OP (DW_OP_shr, 0x25)
  433. DW_OP (DW_OP_shra, 0x26)
  434. DW_OP (DW_OP_xor, 0x27)
  435. DW_OP (DW_OP_bra, 0x28)
  436. DW_OP (DW_OP_eq, 0x29)
  437. DW_OP (DW_OP_ge, 0x2a)
  438. DW_OP (DW_OP_gt, 0x2b)
  439. DW_OP (DW_OP_le, 0x2c)
  440. DW_OP (DW_OP_lt, 0x2d)
  441. DW_OP (DW_OP_ne, 0x2e)
  442. DW_OP (DW_OP_skip, 0x2f)
  443. DW_OP (DW_OP_lit0, 0x30)
  444. DW_OP (DW_OP_lit1, 0x31)
  445. DW_OP (DW_OP_lit2, 0x32)
  446. DW_OP (DW_OP_lit3, 0x33)
  447. DW_OP (DW_OP_lit4, 0x34)
  448. DW_OP (DW_OP_lit5, 0x35)
  449. DW_OP (DW_OP_lit6, 0x36)
  450. DW_OP (DW_OP_lit7, 0x37)
  451. DW_OP (DW_OP_lit8, 0x38)
  452. DW_OP (DW_OP_lit9, 0x39)
  453. DW_OP (DW_OP_lit10, 0x3a)
  454. DW_OP (DW_OP_lit11, 0x3b)
  455. DW_OP (DW_OP_lit12, 0x3c)
  456. DW_OP (DW_OP_lit13, 0x3d)
  457. DW_OP (DW_OP_lit14, 0x3e)
  458. DW_OP (DW_OP_lit15, 0x3f)
  459. DW_OP (DW_OP_lit16, 0x40)
  460. DW_OP (DW_OP_lit17, 0x41)
  461. DW_OP (DW_OP_lit18, 0x42)
  462. DW_OP (DW_OP_lit19, 0x43)
  463. DW_OP (DW_OP_lit20, 0x44)
  464. DW_OP (DW_OP_lit21, 0x45)
  465. DW_OP (DW_OP_lit22, 0x46)
  466. DW_OP (DW_OP_lit23, 0x47)
  467. DW_OP (DW_OP_lit24, 0x48)
  468. DW_OP (DW_OP_lit25, 0x49)
  469. DW_OP (DW_OP_lit26, 0x4a)
  470. DW_OP (DW_OP_lit27, 0x4b)
  471. DW_OP (DW_OP_lit28, 0x4c)
  472. DW_OP (DW_OP_lit29, 0x4d)
  473. DW_OP (DW_OP_lit30, 0x4e)
  474. DW_OP (DW_OP_lit31, 0x4f)
  475. DW_OP (DW_OP_reg0, 0x50)
  476. DW_OP (DW_OP_reg1, 0x51)
  477. DW_OP (DW_OP_reg2, 0x52)
  478. DW_OP (DW_OP_reg3, 0x53)
  479. DW_OP (DW_OP_reg4, 0x54)
  480. DW_OP (DW_OP_reg5, 0x55)
  481. DW_OP (DW_OP_reg6, 0x56)
  482. DW_OP (DW_OP_reg7, 0x57)
  483. DW_OP (DW_OP_reg8, 0x58)
  484. DW_OP (DW_OP_reg9, 0x59)
  485. DW_OP (DW_OP_reg10, 0x5a)
  486. DW_OP (DW_OP_reg11, 0x5b)
  487. DW_OP (DW_OP_reg12, 0x5c)
  488. DW_OP (DW_OP_reg13, 0x5d)
  489. DW_OP (DW_OP_reg14, 0x5e)
  490. DW_OP (DW_OP_reg15, 0x5f)
  491. DW_OP (DW_OP_reg16, 0x60)
  492. DW_OP (DW_OP_reg17, 0x61)
  493. DW_OP (DW_OP_reg18, 0x62)
  494. DW_OP (DW_OP_reg19, 0x63)
  495. DW_OP (DW_OP_reg20, 0x64)
  496. DW_OP (DW_OP_reg21, 0x65)
  497. DW_OP (DW_OP_reg22, 0x66)
  498. DW_OP (DW_OP_reg23, 0x67)
  499. DW_OP (DW_OP_reg24, 0x68)
  500. DW_OP (DW_OP_reg25, 0x69)
  501. DW_OP (DW_OP_reg26, 0x6a)
  502. DW_OP (DW_OP_reg27, 0x6b)
  503. DW_OP (DW_OP_reg28, 0x6c)
  504. DW_OP (DW_OP_reg29, 0x6d)
  505. DW_OP (DW_OP_reg30, 0x6e)
  506. DW_OP (DW_OP_reg31, 0x6f)
  507. DW_OP (DW_OP_breg0, 0x70)
  508. DW_OP (DW_OP_breg1, 0x71)
  509. DW_OP (DW_OP_breg2, 0x72)
  510. DW_OP (DW_OP_breg3, 0x73)
  511. DW_OP (DW_OP_breg4, 0x74)
  512. DW_OP (DW_OP_breg5, 0x75)
  513. DW_OP (DW_OP_breg6, 0x76)
  514. DW_OP (DW_OP_breg7, 0x77)
  515. DW_OP (DW_OP_breg8, 0x78)
  516. DW_OP (DW_OP_breg9, 0x79)
  517. DW_OP (DW_OP_breg10, 0x7a)
  518. DW_OP (DW_OP_breg11, 0x7b)
  519. DW_OP (DW_OP_breg12, 0x7c)
  520. DW_OP (DW_OP_breg13, 0x7d)
  521. DW_OP (DW_OP_breg14, 0x7e)
  522. DW_OP (DW_OP_breg15, 0x7f)
  523. DW_OP (DW_OP_breg16, 0x80)
  524. DW_OP (DW_OP_breg17, 0x81)
  525. DW_OP (DW_OP_breg18, 0x82)
  526. DW_OP (DW_OP_breg19, 0x83)
  527. DW_OP (DW_OP_breg20, 0x84)
  528. DW_OP (DW_OP_breg21, 0x85)
  529. DW_OP (DW_OP_breg22, 0x86)
  530. DW_OP (DW_OP_breg23, 0x87)
  531. DW_OP (DW_OP_breg24, 0x88)
  532. DW_OP (DW_OP_breg25, 0x89)
  533. DW_OP (DW_OP_breg26, 0x8a)
  534. DW_OP (DW_OP_breg27, 0x8b)
  535. DW_OP (DW_OP_breg28, 0x8c)
  536. DW_OP (DW_OP_breg29, 0x8d)
  537. DW_OP (DW_OP_breg30, 0x8e)
  538. DW_OP (DW_OP_breg31, 0x8f)
  539. DW_OP (DW_OP_regx, 0x90)
  540. DW_OP (DW_OP_fbreg, 0x91)
  541. DW_OP (DW_OP_bregx, 0x92)
  542. DW_OP (DW_OP_piece, 0x93)
  543. DW_OP (DW_OP_deref_size, 0x94)
  544. DW_OP (DW_OP_xderef_size, 0x95)
  545. DW_OP (DW_OP_nop, 0x96)
  546. /* DWARF 3 extensions. */
  547. DW_OP (DW_OP_push_object_address, 0x97)
  548. DW_OP (DW_OP_call2, 0x98)
  549. DW_OP (DW_OP_call4, 0x99)
  550. DW_OP (DW_OP_call_ref, 0x9a)
  551. DW_OP (DW_OP_form_tls_address, 0x9b)
  552. DW_OP (DW_OP_call_frame_cfa, 0x9c)
  553. DW_OP (DW_OP_bit_piece, 0x9d)
  554. /* DWARF 4 extensions. */
  555. DW_OP (DW_OP_implicit_value, 0x9e)
  556. DW_OP (DW_OP_stack_value, 0x9f)
  557. DW_OP_DUP (DW_OP_lo_user, 0xe0) /* Implementation-defined range start. */
  558. DW_OP_DUP (DW_OP_hi_user, 0xff) /* Implementation-defined range end. */
  559. /* GNU extensions. */
  560. DW_OP (DW_OP_GNU_push_tls_address, 0xe0)
  561. /* The following is for marking variables that are uninitialized. */
  562. DW_OP (DW_OP_GNU_uninit, 0xf0)
  563. DW_OP (DW_OP_GNU_encoded_addr, 0xf1)
  564. /* The GNU implicit pointer extension.
  565. See http://www.dwarfstd.org/ShowIssue.php?issue=100831.1&type=open . */
  566. DW_OP (DW_OP_GNU_implicit_pointer, 0xf2)
  567. /* The GNU entry value extension.
  568. See http://www.dwarfstd.org/ShowIssue.php?issue=100909.1&type=open . */
  569. DW_OP (DW_OP_GNU_entry_value, 0xf3)
  570. /* The GNU typed stack extension.
  571. See http://www.dwarfstd.org/doc/040408.1.html . */
  572. DW_OP (DW_OP_GNU_const_type, 0xf4)
  573. DW_OP (DW_OP_GNU_regval_type, 0xf5)
  574. DW_OP (DW_OP_GNU_deref_type, 0xf6)
  575. DW_OP (DW_OP_GNU_convert, 0xf7)
  576. DW_OP (DW_OP_GNU_reinterpret, 0xf9)
  577. /* The GNU parameter ref extension. */
  578. DW_OP (DW_OP_GNU_parameter_ref, 0xfa)
  579. /* Extensions for Fission. See http://gcc.gnu.org/wiki/DebugFission. */
  580. DW_OP (DW_OP_GNU_addr_index, 0xfb)
  581. DW_OP (DW_OP_GNU_const_index, 0xfc)
  582. /* HP extensions. */
  583. DW_OP_DUP (DW_OP_HP_unknown, 0xe0) /* Ouch, the same as GNU_push_tls_address. */
  584. DW_OP (DW_OP_HP_is_value, 0xe1)
  585. DW_OP (DW_OP_HP_fltconst4, 0xe2)
  586. DW_OP (DW_OP_HP_fltconst8, 0xe3)
  587. DW_OP (DW_OP_HP_mod_range, 0xe4)
  588. DW_OP (DW_OP_HP_unmod_range, 0xe5)
  589. DW_OP (DW_OP_HP_tls, 0xe6)
  590. /* PGI (STMicroelectronics) extensions. */
  591. DW_OP (DW_OP_PGI_omp_thread_num, 0xf8)
  592. DW_END_OP
  593. DW_FIRST_ATE (DW_ATE_void, 0x0)
  594. DW_ATE (DW_ATE_address, 0x1)
  595. DW_ATE (DW_ATE_boolean, 0x2)
  596. DW_ATE (DW_ATE_complex_float, 0x3)
  597. DW_ATE (DW_ATE_float, 0x4)
  598. DW_ATE (DW_ATE_signed, 0x5)
  599. DW_ATE (DW_ATE_signed_char, 0x6)
  600. DW_ATE (DW_ATE_unsigned, 0x7)
  601. DW_ATE (DW_ATE_unsigned_char, 0x8)
  602. /* DWARF 3. */
  603. DW_ATE (DW_ATE_imaginary_float, 0x9)
  604. DW_ATE (DW_ATE_packed_decimal, 0xa)
  605. DW_ATE (DW_ATE_numeric_string, 0xb)
  606. DW_ATE (DW_ATE_edited, 0xc)
  607. DW_ATE (DW_ATE_signed_fixed, 0xd)
  608. DW_ATE (DW_ATE_unsigned_fixed, 0xe)
  609. DW_ATE (DW_ATE_decimal_float, 0xf)
  610. /* DWARF 4. */
  611. DW_ATE (DW_ATE_UTF, 0x10)
  612. DW_ATE_DUP (DW_ATE_lo_user, 0x80)
  613. DW_ATE_DUP (DW_ATE_hi_user, 0xff)
  614. /* HP extensions. */
  615. DW_ATE (DW_ATE_HP_float80, 0x80) /* Floating-point (80 bit). */
  616. DW_ATE (DW_ATE_HP_complex_float80, 0x81) /* Complex floating-point (80 bit). */
  617. DW_ATE (DW_ATE_HP_float128, 0x82) /* Floating-point (128 bit). */
  618. DW_ATE (DW_ATE_HP_complex_float128, 0x83) /* Complex fp (128 bit). */
  619. DW_ATE (DW_ATE_HP_floathpintel, 0x84) /* Floating-point (82 bit IA64). */
  620. DW_ATE (DW_ATE_HP_imaginary_float80, 0x85)
  621. DW_ATE (DW_ATE_HP_imaginary_float128, 0x86)
  622. DW_ATE (DW_ATE_HP_VAX_float, 0x88) /* F or G floating. */
  623. DW_ATE (DW_ATE_HP_VAX_float_d, 0x89) /* D floating. */
  624. DW_ATE (DW_ATE_HP_packed_decimal, 0x8a) /* Cobol. */
  625. DW_ATE (DW_ATE_HP_zoned_decimal, 0x8b) /* Cobol. */
  626. DW_ATE (DW_ATE_HP_edited, 0x8c) /* Cobol. */
  627. DW_ATE (DW_ATE_HP_signed_fixed, 0x8d) /* Cobol. */
  628. DW_ATE (DW_ATE_HP_unsigned_fixed, 0x8e) /* Cobol. */
  629. DW_ATE (DW_ATE_HP_VAX_complex_float, 0x8f) /* F or G floating complex. */
  630. DW_ATE (DW_ATE_HP_VAX_complex_float_d, 0x90) /* D floating complex. */
  631. DW_END_ATE
  632. DW_FIRST_CFA (DW_CFA_advance_loc, 0x40)
  633. DW_CFA (DW_CFA_offset, 0x80)
  634. DW_CFA (DW_CFA_restore, 0xc0)
  635. DW_CFA (DW_CFA_nop, 0x00)
  636. DW_CFA (DW_CFA_set_loc, 0x01)
  637. DW_CFA (DW_CFA_advance_loc1, 0x02)
  638. DW_CFA (DW_CFA_advance_loc2, 0x03)
  639. DW_CFA (DW_CFA_advance_loc4, 0x04)
  640. DW_CFA (DW_CFA_offset_extended, 0x05)
  641. DW_CFA (DW_CFA_restore_extended, 0x06)
  642. DW_CFA (DW_CFA_undefined, 0x07)
  643. DW_CFA (DW_CFA_same_value, 0x08)
  644. DW_CFA (DW_CFA_register, 0x09)
  645. DW_CFA (DW_CFA_remember_state, 0x0a)
  646. DW_CFA (DW_CFA_restore_state, 0x0b)
  647. DW_CFA (DW_CFA_def_cfa, 0x0c)
  648. DW_CFA (DW_CFA_def_cfa_register, 0x0d)
  649. DW_CFA (DW_CFA_def_cfa_offset, 0x0e)
  650. /* DWARF 3. */
  651. DW_CFA (DW_CFA_def_cfa_expression, 0x0f)
  652. DW_CFA (DW_CFA_expression, 0x10)
  653. DW_CFA (DW_CFA_offset_extended_sf, 0x11)
  654. DW_CFA (DW_CFA_def_cfa_sf, 0x12)
  655. DW_CFA (DW_CFA_def_cfa_offset_sf, 0x13)
  656. DW_CFA (DW_CFA_val_offset, 0x14)
  657. DW_CFA (DW_CFA_val_offset_sf, 0x15)
  658. DW_CFA (DW_CFA_val_expression, 0x16)
  659. DW_CFA (DW_CFA_lo_user, 0x1c)
  660. DW_CFA (DW_CFA_hi_user, 0x3f)
  661. /* SGI/MIPS specific. */
  662. DW_CFA (DW_CFA_MIPS_advance_loc8, 0x1d)
  663. /* GNU extensions. */
  664. DW_CFA (DW_CFA_GNU_window_save, 0x2d)
  665. DW_CFA (DW_CFA_GNU_args_size, 0x2e)
  666. DW_CFA (DW_CFA_GNU_negative_offset_extended, 0x2f)
  667. DW_END_CFA