Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

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