~ubuntu-branches/ubuntu/vivid/lazarus/vivid

« back to all changes in this revision

Viewing changes to debugger/fpdebug/dbgdwarfconst.pas

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Paul Gevers
  • Date: 2014-02-22 10:25:57 UTC
  • mfrom: (1.1.11)
  • Revision ID: package-import@ubuntu.com-20140222102557-ors9d31r84nz31jq
Tags: 1.2~rc2+dfsg-1
[ Abou Al Montacir ]
* New upstream pre-release.
  + Moved ideintf to components directory.
  + Added new package cairocanvas.
* Remove usage of depreciated parameters form of find. (Closes: Bug#724776)
* Bumped standard version to 3.9.5.
* Clean the way handling make files generation and removal.

[ Paul Gevers ]
* Remove nearly obsolete bzip compression for binary packages
  (See https://lists.debian.org/debian-devel/2014/01/msg00542.html)
* Update d/copyright for newly added dir in examples and components
* Update Vcs-* fields with new packaging location
* Update d/watch file to properly (Debian way) change upstreams versions
* Prevent 46MB of package size by sym linking duplicate files
* Patches
  - refresh to remove fuzz
  - add more Lintian found spelling errors
  - new patch to add shbang to two scripts in lazarus-src
* Drop lcl-# from Provides list of lcl-units-#
* Make lazarus-ide-qt4-# an arch all until it really contains stuff
* Make all metapackages arch all as the usecase for arch any doesn't
  seem to warrant the addition archive hit
* Fix permissions of non-scripts in lazarus-src-#

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{ $Id: dbgdwarfconst.pas 18302 2009-01-16 00:26:10Z marc $ }
2
 
{
3
 
 ---------------------------------------------------------------------------
4
 
 dbgdwarfconst.pas  -  Freepascal debugger - Dwarf constants
5
 
 ---------------------------------------------------------------------------
6
 
 
7
 
 This unit contains the constants defined for the dward debugging format.
8
 
 
9
 
 ---------------------------------------------------------------------------
10
 
 
11
 
 @created(Fri Jul 7th WET 2006)
12
 
 @lastmod($Date: 2009-01-16 01:26:10 +0100 (Fr, 16 Jan 2009) $)
13
 
 @author(Marc Weustink <marc@@dommelstein.nl>)
14
 
 
15
 
 *****************************************************************************
16
 
 *                                                                           *
17
 
 *  This file is part of the Lazarus Project                                 *
18
 
 *                                                                           *
19
 
 *  See the file COPYING.modifiedLGPL.txt, included in this distribution,        *
20
 
 *  for details about the copyright.                                         *
21
 
 *                                                                           *
22
 
 *  This program is distributed in the hope that it will be useful,          *
23
 
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of           *
24
 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.                     *
25
 
 *                                                                           *
26
 
 *****************************************************************************
27
 
}
28
 
unit DbgDwarfConst;
29
 
 
30
 
{$mode objfpc}{$H+}
31
 
 
32
 
interface
33
 
 
34
 
const
35
 
 
36
 
  { tag encodings }
37
 
  
38
 
  DW_TAG_array_type               = $01;
39
 
  DW_TAG_class_type               = $02;
40
 
  DW_TAG_entry_point              = $03;
41
 
  DW_TAG_enumeration_type         = $04;
42
 
  DW_TAG_formal_parameter         = $05;
43
 
  DW_TAG_imported_declaration     = $08;
44
 
  DW_TAG_label                    = $0a;
45
 
  DW_TAG_lexical_block            = $0b;
46
 
  DW_TAG_member                   = $0d;
47
 
  DW_TAG_pointer_type             = $0f;
48
 
  DW_TAG_reference_type           = $10;
49
 
  DW_TAG_compile_unit             = $11;
50
 
  DW_TAG_string_type              = $12;
51
 
  DW_TAG_structure_type           = $13;
52
 
  DW_TAG_subroutine_type          = $15;
53
 
  DW_TAG_typedef                  = $16;
54
 
  DW_TAG_union_type               = $17;
55
 
  DW_TAG_unspecified_parameters   = $18;
56
 
  DW_TAG_variant                  = $19;
57
 
  DW_TAG_common_block             = $1a;
58
 
  DW_TAG_common_inclusion         = $1b;
59
 
  DW_TAG_inheritance              = $1c;
60
 
  DW_TAG_inlined_subroutine       = $1d;
61
 
  DW_TAG_module                   = $1e;
62
 
  DW_TAG_ptr_to_member_type       = $1f;
63
 
  DW_TAG_set_type                 = $20;
64
 
  DW_TAG_subrange_type            = $21;
65
 
  DW_TAG_with_stmt                = $22;
66
 
  DW_TAG_access_declaration       = $23;
67
 
  DW_TAG_base_type                = $24;
68
 
  DW_TAG_catch_block              = $25;
69
 
  DW_TAG_const_type               = $26;
70
 
  DW_TAG_constant                 = $27;
71
 
  DW_TAG_enumerator               = $28;
72
 
  DW_TAG_file_type                = $29;
73
 
  DW_TAG_friend                   = $2a;
74
 
  DW_TAG_namelist                 = $2b;
75
 
  DW_TAG_namelist_item            = $2c;
76
 
  DW_TAG_packed_type              = $2d;
77
 
  DW_TAG_subprogram               = $2e;
78
 
  DW_TAG_template_type_parameter  = $2f;
79
 
  DW_TAG_template_value_parameter = $30;
80
 
  DW_TAG_thrown_type              = $31;
81
 
  DW_TAG_try_block                = $32;
82
 
  DW_TAG_variant_part             = $33;
83
 
  DW_TAG_variable                 = $34;
84
 
  DW_TAG_volatile_type            = $35;
85
 
  // --- DWARF3 ---
86
 
  DW_TAG_dwarf_procedure          = $36;
87
 
  DW_TAG_restrict_type            = $37;
88
 
  DW_TAG_interface_type           = $38;
89
 
  DW_TAG_namespace                = $39;
90
 
  DW_TAG_imported_module          = $3a;
91
 
  DW_TAG_unspecified_type         = $3b;
92
 
  DW_TAG_partial_unit             = $3c;
93
 
  DW_TAG_imported_unit            = $3d;
94
 
  DW_TAG_condition                = $3f;
95
 
  DW_TAG_shared_type              = $40;
96
 
  // ---  ---
97
 
  DW_TAG_lo_user                  = $4080;
98
 
  DW_TAG_hi_user                  = $ffff;
99
 
 
100
 
 
101
 
  { Child determination encodings }
102
 
  
103
 
  DW_CHILDREN_no  = $00;
104
 
  DW_CHILDREN_yes = $01;
105
 
 
106
 
 
107
 
  { Attribute encodings }
108
 
  
109
 
  DW_AT_sibling              = $01  ;    // reference
110
 
  DW_AT_location             = $02  ;    // block, loclistptr
111
 
  DW_AT_name                 = $03  ;    // string
112
 
  DW_AT_ordering             = $09  ;    // constant
113
 
  DW_AT_byte_size            = $0b  ;    // block, constant, reference
114
 
  DW_AT_bit_offset           = $0c  ;    // block, constant, reference
115
 
  DW_AT_bit_size             = $0d  ;    // block, constant, reference
116
 
  DW_AT_stmt_list            = $10  ;    // lineptr
117
 
  DW_AT_low_pc               = $11  ;    // address
118
 
  DW_AT_high_pc              = $12  ;    // address
119
 
  DW_AT_language             = $13  ;    // constant
120
 
  DW_AT_discr                = $15  ;    // reference
121
 
  DW_AT_discr_value          = $16  ;    // constant
122
 
  DW_AT_visibility           = $17  ;    // constant
123
 
  DW_AT_import               = $18  ;    // reference
124
 
  DW_AT_string_length        = $19  ;    // block, loclistptr
125
 
  DW_AT_common_reference     = $1a  ;    // reference
126
 
  DW_AT_comp_dir             = $1b  ;    // string
127
 
  DW_AT_const_value          = $1c  ;    // block, constant, string
128
 
  DW_AT_containing_type      = $1d  ;    // reference
129
 
  DW_AT_default_value        = $1e  ;    // reference
130
 
  DW_AT_inline               = $20  ;    // constant
131
 
  DW_AT_is_optional          = $21  ;    // flag
132
 
  DW_AT_lower_bound          = $22  ;    // block, constant, reference
133
 
  DW_AT_producer             = $25  ;    // string
134
 
  DW_AT_prototyped           = $27  ;    // flag
135
 
  DW_AT_return_addr          = $2a  ;    // block, loclistptr
136
 
  DW_AT_start_scope          = $2c  ;    // constant
137
 
  DW_AT_bit_stride           = $2e  ;    // constant
138
 
  DW_AT_upper_bound          = $2f  ;    // block, constant, reference
139
 
  DW_AT_abstract_origin      = $31  ;    // reference
140
 
  DW_AT_accessibility        = $32  ;    // constant
141
 
  DW_AT_address_class        = $33  ;    // constant
142
 
  DW_AT_artificial           = $34  ;    // flag
143
 
  DW_AT_base_types           = $35  ;    // reference
144
 
  DW_AT_calling_convention   = $36  ;    // constant
145
 
  DW_AT_count                = $37  ;    // block, constant, reference
146
 
  DW_AT_data_member_location = $38  ;    // block, constant, loclistptr
147
 
  DW_AT_decl_column          = $39  ;    // constant
148
 
  DW_AT_decl_file            = $3a  ;    // constant
149
 
  DW_AT_decl_line            = $3b  ;    // constant
150
 
  DW_AT_declaration          = $3c  ;    // flag
151
 
  DW_AT_discr_list           = $3d  ;    // block
152
 
  DW_AT_encoding             = $3e  ;    // constant
153
 
  DW_AT_external             = $3f  ;    // flag
154
 
  DW_AT_frame_base           = $40  ;    // block, loclistptr
155
 
  DW_AT_friend               = $41  ;    // reference
156
 
  DW_AT_identifier_case      = $42  ;    // constant
157
 
  DW_AT_macro_info           = $43  ;    // macptr
158
 
  DW_AT_namelist_item        = $44  ;    // block
159
 
  DW_AT_priority             = $45  ;    // reference
160
 
  DW_AT_segment              = $46  ;    // block, loclistptr
161
 
  DW_AT_specification        = $47  ;    // reference
162
 
  DW_AT_static_link          = $48  ;    // block, loclistptr
163
 
  DW_AT_type                 = $49  ;    // reference
164
 
  DW_AT_use_location         = $4a  ;    // block, loclistptr
165
 
  DW_AT_variable_parameter   = $4b  ;    // flag
166
 
  DW_AT_virtuality           = $4c  ;    // constant
167
 
  DW_AT_vtable_elem_location = $4d  ;    // block, loclistptr
168
 
  // --- DWARF3 ---
169
 
  DW_AT_allocated            = $4e  ;    // block, constant, reference
170
 
  DW_AT_associated           = $4f  ;    // block, constant, reference
171
 
  DW_AT_data_location        = $50  ;    // block
172
 
  DW_AT_byte_stride          = $51  ;    // block, constant, reference
173
 
  DW_AT_entry_pc             = $52  ;    // address
174
 
  DW_AT_use_UTF8             = $53  ;    // flag
175
 
  DW_AT_extension            = $54  ;    // reference
176
 
  DW_AT_ranges               = $55  ;    // rangelistptr
177
 
  DW_AT_trampoline           = $56  ;    // address, flag, reference, string
178
 
  DW_AT_call_column          = $57  ;    // constant
179
 
  DW_AT_call_file            = $58  ;    // constant
180
 
  DW_AT_call_line            = $59  ;    // constant
181
 
  DW_AT_description          = $5a  ;    // string
182
 
  DW_AT_binary_scale         = $5b  ;    // constant
183
 
  DW_AT_decimal_scale        = $5c  ;    // constant
184
 
  DW_AT_small                = $5d  ;    // reference
185
 
  DW_AT_decimal_sign         = $5e  ;    // constant
186
 
  DW_AT_digit_count          = $5f  ;    // constant
187
 
  DW_AT_picture_string       = $60  ;    // string
188
 
  DW_AT_mutable              = $61  ;    // flag
189
 
  DW_AT_threads_scaled       = $62  ;    // flag
190
 
  DW_AT_explicit             = $63  ;    // flag
191
 
  DW_AT_object_pointer       = $64  ;    // reference
192
 
  DW_AT_endianity            = $65  ;    // constant
193
 
  DW_AT_elemental            = $66  ;    // flag
194
 
  DW_AT_pure                 = $67  ;    // flag
195
 
  DW_AT_recursive            = $68  ;    // flag
196
 
  // ---  ---
197
 
  DW_AT_lo_user              = $2000;    // ---
198
 
  DW_AT_hi_user              = $3fff;    // ---
199
 
 
200
 
 
201
 
  { Attribute form encodings }
202
 
 
203
 
  DW_FORM_addr      = $01;    // address
204
 
  DW_FORM_block2    = $03;    // block
205
 
  DW_FORM_block4    = $04;    // block
206
 
  DW_FORM_data2     = $05;    // constant
207
 
  DW_FORM_data4     = $06;    // constant, lineptr, loclistptr, macptr, rangelistptr
208
 
  DW_FORM_data8     = $07;    // constant, lineptr, loclistptr, macptr, rangelistptr
209
 
  DW_FORM_string    = $08;    // string
210
 
  DW_FORM_block     = $09;    // block
211
 
  DW_FORM_block1    = $0a;    // block
212
 
  DW_FORM_data1     = $0b;    // constant
213
 
  DW_FORM_flag      = $0c;    // flag
214
 
  DW_FORM_sdata     = $0d;    // constant
215
 
  DW_FORM_strp      = $0e;    // string
216
 
  DW_FORM_udata     = $0f;    // constant
217
 
  DW_FORM_ref_addr  = $10;    // reference
218
 
  DW_FORM_ref1      = $11;    // reference
219
 
  DW_FORM_ref2      = $12;    // reference
220
 
  DW_FORM_ref4      = $13;    // reference
221
 
  DW_FORM_ref8      = $14;    // reference
222
 
  DW_FORM_ref_udata = $15;    // reference
223
 
  DW_FORM_indirect  = $16;    //
224
 
 
225
 
 
226
 
  { DWARF operation encodings }
227
 
  
228
 
  DW_OP_addr                  = $03;    // 1 constant address (size target specific)
229
 
  DW_OP_deref                 = $06;    // 0
230
 
  DW_OP_const1u               = $08;    // 1 1-byte constant
231
 
  DW_OP_const1s               = $09;    // 1 1-byte constant
232
 
  DW_OP_const2u               = $0a;    // 1 2-byte constant
233
 
  DW_OP_const2s               = $0b;    // 1 2-byte constant
234
 
  DW_OP_const4u               = $0c;    // 1 4-byte constant
235
 
  DW_OP_const4s               = $0d;    // 1 4-byte constant
236
 
  DW_OP_const8u               = $0e;    // 1 8-byte constant
237
 
  DW_OP_const8s               = $0f;    // 1 8-byte constant
238
 
  DW_OP_constu                = $10;    // 1 ULEB128 constant
239
 
  DW_OP_consts                = $11;    // 1 SLEB128 constant
240
 
  DW_OP_dup                   = $12;    // 0
241
 
  DW_OP_drop                  = $13;    // 0
242
 
  DW_OP_over                  = $14;    // 0
243
 
  DW_OP_pick                  = $15;    // 1 1-byte stack index
244
 
  DW_OP_swap                  = $16;    // 0
245
 
  DW_OP_rot                   = $17;    // 0
246
 
  DW_OP_xderef                = $18;    // 0
247
 
  DW_OP_abs                   = $19;    // 0
248
 
  DW_OP_and                   = $1a;    // 0
249
 
  DW_OP_div                   = $1b;    // 0
250
 
  DW_OP_minus                 = $1c;    // 0
251
 
  DW_OP_mod                   = $1d;    // 0
252
 
  DW_OP_mul                   = $1e;    // 0
253
 
  DW_OP_neg                   = $1f;    // 0
254
 
  DW_OP_not                   = $20;    // 0
255
 
  DW_OP_or                    = $21;    // 0
256
 
  DW_OP_plus                  = $22;    // 0
257
 
  DW_OP_plus_uconst           = $23;    // 1 ULEB128 addend
258
 
  DW_OP_shl                   = $24;    // 0
259
 
  DW_OP_shr                   = $25;    // 0
260
 
  DW_OP_shra                  = $26;    // 0
261
 
  DW_OP_xor                   = $27;    // 0
262
 
  DW_OP_skip                  = $2f;    // 1 signed 2-byte constant
263
 
  DW_OP_bra                   = $28;    // 1 signed 2-byte constant
264
 
  DW_OP_eq                    = $29;    // 0
265
 
  DW_OP_ge                    = $2a;    // 0
266
 
  DW_OP_gt                    = $2b;    // 0
267
 
  DW_OP_le                    = $2c;    // 0
268
 
  DW_OP_lt                    = $2d;    // 0
269
 
  DW_OP_ne                    = $2e;    // 0
270
 
  DW_OP_lit0                  = $30;    // 0 literals 0..31 =    (DW_OP_lit0 + literal)
271
 
  DW_OP_lit1                  = $31;    // 0
272
 
  DW_OP_lit2                  = $32;    // 0
273
 
  DW_OP_lit3                  = $33;    // 0
274
 
  DW_OP_lit4                  = $34;    // 0
275
 
  DW_OP_lit5                  = $35;    // 0
276
 
  DW_OP_lit6                  = $36;    // 0
277
 
  DW_OP_lit7                  = $37;    // 0
278
 
  DW_OP_lit8                  = $38;    // 0
279
 
  DW_OP_lit9                  = $39;    // 0
280
 
  DW_OP_lit10                 = $3a;    // 0
281
 
  DW_OP_lit11                 = $3b;    // 0
282
 
  DW_OP_lit12                 = $3c;    // 0
283
 
  DW_OP_lit13                 = $3d;    // 0
284
 
  DW_OP_lit14                 = $3e;    // 0
285
 
  DW_OP_lit15                 = $3f;    // 0
286
 
  DW_OP_lit16                 = $40;    // 0
287
 
  DW_OP_lit17                 = $41;    // 0
288
 
  DW_OP_lit18                 = $42;    // 0
289
 
  DW_OP_lit19                 = $43;    // 0
290
 
  DW_OP_lit20                 = $44;    // 0
291
 
  DW_OP_lit21                 = $45;    // 0
292
 
  DW_OP_lit22                 = $46;    // 0
293
 
  DW_OP_lit23                 = $47;    // 0
294
 
  DW_OP_lit24                 = $48;    // 0
295
 
  DW_OP_lit25                 = $49;    // 0
296
 
  DW_OP_lit26                 = $4a;    // 0
297
 
  DW_OP_lit27                 = $4b;    // 0
298
 
  DW_OP_lit28                 = $4c;    // 0
299
 
  DW_OP_lit29                 = $4d;    // 0
300
 
  DW_OP_lit30                 = $4e;    // 0
301
 
  DW_OP_lit31                 = $4f;    // 0
302
 
  DW_OP_reg0                  = $50;    // 0 reg 0..31 =    (DW_OP_reg0 + regnum)
303
 
  DW_OP_reg1                  = $51;    // 0
304
 
  DW_OP_reg2                  = $52;    // 0
305
 
  DW_OP_reg3                  = $53;    // 0
306
 
  DW_OP_reg4                  = $54;    // 0
307
 
  DW_OP_reg5                  = $55;    // 0
308
 
  DW_OP_reg6                  = $56;    // 0
309
 
  DW_OP_reg7                  = $57;    // 0
310
 
  DW_OP_reg8                  = $58;    // 0
311
 
  DW_OP_reg9                  = $59;    // 0
312
 
  DW_OP_reg10                 = $5a;    // 0
313
 
  DW_OP_reg11                 = $5b;    // 0
314
 
  DW_OP_reg12                 = $5c;    // 0
315
 
  DW_OP_reg13                 = $5d;    // 0
316
 
  DW_OP_reg14                 = $5e;    // 0
317
 
  DW_OP_reg15                 = $5f;    // 0
318
 
  DW_OP_reg16                 = $60;    // 0
319
 
  DW_OP_reg17                 = $61;    // 0
320
 
  DW_OP_reg18                 = $62;    // 0
321
 
  DW_OP_reg19                 = $63;    // 0
322
 
  DW_OP_reg20                 = $64;    // 0
323
 
  DW_OP_reg21                 = $65;    // 0
324
 
  DW_OP_reg22                 = $66;    // 0
325
 
  DW_OP_reg23                 = $67;    // 0
326
 
  DW_OP_reg24                 = $68;    // 0
327
 
  DW_OP_reg25                 = $69;    // 0
328
 
  DW_OP_reg26                 = $6a;    // 0
329
 
  DW_OP_reg27                 = $6b;    // 0
330
 
  DW_OP_reg28                 = $6c;    // 0
331
 
  DW_OP_reg29                 = $6d;    // 0
332
 
  DW_OP_reg30                 = $6e;    // 0
333
 
  DW_OP_reg31                 = $6f;    // 0
334
 
  DW_OP_breg0                 = $70;    // 1 SLEB128 offsetbase register 0..31 =     (DW_OP_breg0 + regnum)
335
 
  DW_OP_breg1                 = $71;    // 1
336
 
  DW_OP_breg2                 = $72;    // 1
337
 
  DW_OP_breg3                 = $73;    // 1
338
 
  DW_OP_breg4                 = $74;    // 1
339
 
  DW_OP_breg5                 = $75;    // 1
340
 
  DW_OP_breg6                 = $76;    // 1
341
 
  DW_OP_breg7                 = $77;    // 1
342
 
  DW_OP_breg8                 = $78;    // 1
343
 
  DW_OP_breg9                 = $79;    // 1
344
 
  DW_OP_breg10                = $7a;    // 1
345
 
  DW_OP_breg11                = $7b;    // 1
346
 
  DW_OP_breg12                = $7c;    // 1
347
 
  DW_OP_breg13                = $7d;    // 1
348
 
  DW_OP_breg14                = $7e;    // 1
349
 
  DW_OP_breg15                = $7f;    // 1
350
 
  DW_OP_breg16                = $80;    // 1
351
 
  DW_OP_breg17                = $81;    // 1
352
 
  DW_OP_breg18                = $82;    // 1
353
 
  DW_OP_breg19                = $83;    // 1
354
 
  DW_OP_breg20                = $84;    // 1
355
 
  DW_OP_breg21                = $85;    // 1
356
 
  DW_OP_breg22                = $86;    // 1
357
 
  DW_OP_breg23                = $87;    // 1
358
 
  DW_OP_breg24                = $88;    // 1
359
 
  DW_OP_breg25                = $89;    // 1
360
 
  DW_OP_breg26                = $8a;    // 1
361
 
  DW_OP_breg27                = $8b;    // 1
362
 
  DW_OP_breg28                = $8c;    // 1
363
 
  DW_OP_breg29                = $8d;    // 1
364
 
  DW_OP_breg30                = $8e;    // 1
365
 
  DW_OP_breg31                = $8f;    // 1
366
 
  DW_OP_regx                  = $90;    // 1 ULEB128 register
367
 
  DW_OP_fbreg                 = $91;    // 1 SLEB128 offset
368
 
  DW_OP_bregx                 = $92;    // 2 ULEB128 register followed bySLEB128 offset
369
 
  DW_OP_piece                 = $93;    // 1 ULEB128 size of piece addressed
370
 
  DW_OP_deref_size            = $94;    // 1 1-byte size of data retrieved
371
 
  DW_OP_xderef_size           = $95;    // 1 1-byte size of data retrieved
372
 
  DW_OP_nop                   = $96;    // 0
373
 
  // --- DWARF3 ---
374
 
  DW_OP_push_object_address   = $97;    // 0
375
 
  DW_OP_call2                 = $98;    // 1 2-byte offset of DIE
376
 
  DW_OP_call4                 = $99;    // 1 4-byte offset of DIE
377
 
  DW_OP_call_ref              = $9a;    // 1 4- or 8-byte offset of DIE
378
 
  DW_OP_form_tls_address      = $9b;    // 0
379
 
  DW_OP_call_frame_cfa        = $9c;    // 0
380
 
  DW_OP_bit_piece             = $9d;    // 2
381
 
  // ---  ---
382
 
  DW_OP_lo_user               = $e0;    //
383
 
  DW_OP_hi_user               = $ff;    //
384
 
  
385
 
  
386
 
  { Base type encoding values }
387
 
  
388
 
  DW_ATE_address           = $01;
389
 
  DW_ATE_boolean           = $02;
390
 
  DW_ATE_complex_float     = $03;
391
 
  DW_ATE_float             = $04;
392
 
  DW_ATE_signed            = $05;
393
 
  DW_ATE_signed_char       = $06;
394
 
  DW_ATE_unsigned          = $07;
395
 
  DW_ATE_unsigned_char     = $08;
396
 
  // --- DWARF3 ---
397
 
  DW_ATE_imaginary_float   = $09;
398
 
  DW_ATE_packed_decimal    = $0a;
399
 
  DW_ATE_numeric_string    = $0b;
400
 
  DW_ATE_edited            = $0c;
401
 
  DW_ATE_signed_fixed      = $0d;
402
 
  DW_ATE_unsigned_fixed    = $0e;
403
 
  DW_ATE_decimal_float     = $0f;
404
 
  // ---  ---
405
 
  DW_ATE_lo_user           = $80;
406
 
  DW_ATE_hi_user           = $ff;
407
 
  
408
 
 
409
 
  { Decimal sign encodings }
410
 
  
411
 
  // --- DWARF3 ---
412
 
  DW_DS_unsigned           = $01;
413
 
  DW_DS_leading_overpunch  = $02;
414
 
  DW_DS_trailing_overpunch = $03;
415
 
  DW_DS_leading_separate   = $04;
416
 
  DW_DS_trailing_separate  = $05;
417
 
  // ---  ---
418
 
 
419
 
 
420
 
  { Endianity encodings }
421
 
 
422
 
  // --- DWARF3 ---
423
 
  DW_END_default  = $00;
424
 
  DW_END_big      = $01;
425
 
  DW_END_little   = $02;
426
 
  DW_END_lo_user  = $40;
427
 
  DW_END_hi_user  = $ff;
428
 
  // ---  ---
429
 
 
430
 
 
431
 
  { Accessibility encodings }
432
 
  
433
 
  DW_ACCESS_public    = $01;
434
 
  DW_ACCESS_protected = $02;
435
 
  DW_ACCESS_private   = $03;
436
 
 
437
 
 
438
 
  { Visibility encodings }
439
 
  
440
 
  DW_VIS_local     = $01;
441
 
  DW_VIS_exported  = $02;
442
 
  DW_VIS_qualified = $03;
443
 
  
444
 
  
445
 
  { Virtuality encodings }
446
 
  
447
 
  DW_VIRTUALITY_none         = $00;
448
 
  DW_VIRTUALITY_virtual      = $01;
449
 
  DW_VIRTUALITY_pure_virtual = $02;
450
 
 
451
 
 
452
 
  { Language names }
453
 
 
454
 
  DW_LANG_C89              = $0001;
455
 
  DW_LANG_C                = $0002;
456
 
  DW_LANG_Ada83            = $0003; // reserved
457
 
  DW_LANG_C_plus_plus      = $0004;
458
 
  DW_LANG_Cobol74          = $0005; // reserved
459
 
  DW_LANG_Cobol85          = $0006; // reserved
460
 
  DW_LANG_Fortran77        = $0007;
461
 
  DW_LANG_Fortran90        = $0008;
462
 
  DW_LANG_Pascal83         = $0009;
463
 
  DW_LANG_Modula2          = $000a;
464
 
  // --- DWARF3 ---
465
 
  DW_LANG_Java             = $000b;
466
 
  DW_LANG_C99              = $000c;
467
 
  DW_LANG_Ada95            = $000d; // reserved
468
 
  DW_LANG_Fortran95        = $000e;
469
 
  DW_LANG_PLI              = $000f; // reserved
470
 
  DW_LANG_ObjC             = $0010;
471
 
  DW_LANG_ObjC_plus_plus   = $0011;
472
 
  DW_LANG_UPC              = $0012;
473
 
  DW_LANG_D                = $0013;
474
 
  // ---  ---
475
 
  DW_LANG_lo_user          = $8000;
476
 
  DW_LANG_hi_user          = $ffff;
477
 
  
478
 
 
479
 
  { Address class encoding }
480
 
  
481
 
  DW_ADDR_none = $00;
482
 
  
483
 
  
484
 
  { Identifier case encodings }
485
 
  
486
 
  DW_ID_case_sensitive   = $00;
487
 
  DW_ID_up_case          = $01;
488
 
  DW_ID_down_case        = $02;
489
 
  DW_ID_case_insensitive = $03;
490
 
 
491
 
 
492
 
  { Calling convention encodings }
493
 
  
494
 
  DW_CC_normal  = $01;
495
 
  DW_CC_program = $02;
496
 
  DW_CC_nocall  = $03;
497
 
  DW_CC_lo_user = $40;
498
 
  DW_CC_hi_user = $ff;
499
 
 
500
 
 
501
 
  { Inline encodings }
502
 
  
503
 
  DW_INL_not_inlined          = $00;
504
 
  DW_INL_inlined              = $01;
505
 
  DW_INL_declared_not_inlined = $02;
506
 
  DW_INL_declared_inlined     = $03;
507
 
 
508
 
 
509
 
  { Ordering encodings }
510
 
  
511
 
  DW_ORD_row_major = $00;
512
 
  DW_ORD_col_major = $01;
513
 
  
514
 
  
515
 
  { Discriminant descriptor encodings }
516
 
  
517
 
  DW_DSC_label = $00;
518
 
  DW_DSC_range = $01;
519
 
 
520
 
 
521
 
  { Line Number Standard Opcode Encodings }
522
 
  DW_LNS_extended_opcode      = $00;
523
 
  
524
 
  DW_LNS_copy                 = $01;
525
 
  DW_LNS_advance_pc           = $02;
526
 
  DW_LNS_advance_line         = $03;
527
 
  DW_LNS_set_file             = $04;
528
 
  DW_LNS_set_column           = $05;
529
 
  DW_LNS_negate_stmt          = $06;
530
 
  DW_LNS_set_basic_block      = $07;
531
 
  DW_LNS_const_add_pc         = $08;
532
 
  DW_LNS_fixed_advance_pc     = $09;
533
 
  // --- DWARF3 ---
534
 
  DW_LNS_set_prologue_end     = $0a;
535
 
  DW_LNS_set_epilogue_begin   = $0b;
536
 
  DW_LNS_set_isa              = $0c;
537
 
  // ---  ---
538
 
 
539
 
 
540
 
  { Line Number Extended Opcode Encodings }
541
 
  
542
 
  DW_LNE_end_sequence = $01;
543
 
  DW_LNE_set_address  = $02;
544
 
  DW_LNE_define_file  = $03;
545
 
  // --- DWARF3 ---
546
 
  DW_LNE_lo_user      = $80;
547
 
  DW_LNE_hi_user      = $ff;
548
 
  // ---  ---
549
 
 
550
 
  
551
 
  { Macinfo Type Encodings }
552
 
  
553
 
  DW_MACINFO_define     = $01;
554
 
  DW_MACINFO_undef      = $02;
555
 
  DW_MACINFO_start_file = $03;
556
 
  DW_MACINFO_end_file   = $04;
557
 
  DW_MACINFO_vendor_ext = $ff;
558
 
 
559
 
 
560
 
  { Call frame instruction encodings }
561
 
 
562
 
  // Special codes, operand is encoded in bit 5..0
563
 
  DW_CFA_advance_loc          = $40;    // delta
564
 
  DW_CFA_offset               = $80;    // register  ULEB128 offset
565
 
  DW_CFA_restore              = $C0;    // register
566
 
  //--
567
 
  DW_CFA_nop                  = $00;
568
 
  DW_CFA_set_loc              = $01;    // address
569
 
  DW_CFA_advance_loc1         = $02;    // 1-byte delta
570
 
  DW_CFA_advance_loc2         = $03;    // 2-byte delta
571
 
  DW_CFA_advance_loc4         = $04;    // 4-byte delta
572
 
  DW_CFA_offset_extended      = $05;    // ULEB128 register, ULEB128 offset
573
 
  DW_CFA_restore_extended     = $06;    // ULEB128 register
574
 
  DW_CFA_undefined            = $07;    // ULEB128 register
575
 
  DW_CFA_same_value           = $08;    // ULEB128 register
576
 
  DW_CFA_register             = $09;    // ULEB128 register, ULEB128 register
577
 
  DW_CFA_remember_state       = $0a;
578
 
  DW_CFA_restore_state        = $0b;
579
 
  DW_CFA_def_cfa              = $0c;    // ULEB128 register, ULEB128 offset
580
 
  DW_CFA_def_cfa_register     = $0d;    // ULEB128 register
581
 
  DW_CFA_def_cfa_offset       = $0e;    // ULEB128 offset
582
 
  // --- DWARF3 ---
583
 
  DW_CFA_def_cfa_expression   = $0f;    // BLOCK
584
 
  DW_CFA_expression           = $10;    // ULEB128 register, BLOCK
585
 
  DW_CFA_offset_extended_sf   = $11;    // ULEB128 register, SLEB128 offset
586
 
  DW_CFA_def_cfa_sf           = $12;    // ULEB128 register, SLEB128 offset
587
 
  DW_CFA_def_cfa_offset_sf    = $13;    // SLEB128 offset
588
 
  DW_CFA_val_offset           = $14;    // ULEB128         , ULEB128
589
 
  DW_CFA_val_offset_sf        = $15;    // ULEB128         , SLEB128
590
 
  DW_CFA_val_expression       = $16;    // ULEB128         , BLOCK
591
 
  // ---  ---
592
 
  DW_CFA_lo_user              = $1c;
593
 
  DW_CFA_hi_user              = $3f;
594
 
  
595
 
 
596
 
implementation
597
 
 
598
 
end.
599