Back to index

glibc  2.9
dwarf2.h
Go to the documentation of this file.
00001 /* Declarations and definitions of codes relating to the DWARF2 symbolic
00002    debugging information format.
00003    Copyright (C) 1992, 1993, 1995, 1996, 1997, 2000
00004        Free Software Foundation, Inc.
00005    Contributed by Gary Funck (gary@intrepid.com).  Derived from the
00006    DWARF 1 implementation written by Ron Guilmette (rfg@monkeys.com).
00007 
00008    This file is part of the GNU C Library.
00009 
00010    The GNU C Library is free software; you can redistribute it and/or
00011    modify it under the terms of the GNU Lesser General Public
00012    License as published by the Free Software Foundation; either
00013    version 2.1 of the License, or (at your option) any later version.
00014 
00015    The GNU C Library is distributed in the hope that it will be useful,
00016    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018    Lesser General Public License for more details.
00019 
00020    You should have received a copy of the GNU Lesser General Public
00021    License along with the GNU C Library; if not, write to the Free
00022    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
00023    02111-1307 USA.  */
00024 
00025 /* This file is derived from the DWARF specification (a public document)
00026    Revision 2.0.0 (July 27, 1993) developed by the UNIX International
00027    Programming Languages Special Interest Group (UI/PLSIG) and distributed
00028    by UNIX International.  Copies of this specification are available from
00029    UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.  */
00030 
00031 /* This file is shared between GCC and GDB, and should not contain
00032    prototypes.  */
00033 
00034 /* Tag names and codes.  */
00035 
00036 enum dwarf_tag
00037   {
00038     DW_TAG_padding = 0x00,
00039     DW_TAG_array_type = 0x01,
00040     DW_TAG_class_type = 0x02,
00041     DW_TAG_entry_point = 0x03,
00042     DW_TAG_enumeration_type = 0x04,
00043     DW_TAG_formal_parameter = 0x05,
00044     DW_TAG_imported_declaration = 0x08,
00045     DW_TAG_label = 0x0a,
00046     DW_TAG_lexical_block = 0x0b,
00047     DW_TAG_member = 0x0d,
00048     DW_TAG_pointer_type = 0x0f,
00049     DW_TAG_reference_type = 0x10,
00050     DW_TAG_compile_unit = 0x11,
00051     DW_TAG_string_type = 0x12,
00052     DW_TAG_structure_type = 0x13,
00053     DW_TAG_subroutine_type = 0x15,
00054     DW_TAG_typedef = 0x16,
00055     DW_TAG_union_type = 0x17,
00056     DW_TAG_unspecified_parameters = 0x18,
00057     DW_TAG_variant = 0x19,
00058     DW_TAG_common_block = 0x1a,
00059     DW_TAG_common_inclusion = 0x1b,
00060     DW_TAG_inheritance = 0x1c,
00061     DW_TAG_inlined_subroutine = 0x1d,
00062     DW_TAG_module = 0x1e,
00063     DW_TAG_ptr_to_member_type = 0x1f,
00064     DW_TAG_set_type = 0x20,
00065     DW_TAG_subrange_type = 0x21,
00066     DW_TAG_with_stmt = 0x22,
00067     DW_TAG_access_declaration = 0x23,
00068     DW_TAG_base_type = 0x24,
00069     DW_TAG_catch_block = 0x25,
00070     DW_TAG_const_type = 0x26,
00071     DW_TAG_constant = 0x27,
00072     DW_TAG_enumerator = 0x28,
00073     DW_TAG_file_type = 0x29,
00074     DW_TAG_friend = 0x2a,
00075     DW_TAG_namelist = 0x2b,
00076     DW_TAG_namelist_item = 0x2c,
00077     DW_TAG_packed_type = 0x2d,
00078     DW_TAG_subprogram = 0x2e,
00079     DW_TAG_template_type_param = 0x2f,
00080     DW_TAG_template_value_param = 0x30,
00081     DW_TAG_thrown_type = 0x31,
00082     DW_TAG_try_block = 0x32,
00083     DW_TAG_variant_part = 0x33,
00084     DW_TAG_variable = 0x34,
00085     DW_TAG_volatile_type = 0x35,
00086     /* SGI/MIPS Extensions */
00087     DW_TAG_MIPS_loop = 0x4081,
00088     /* GNU extensions */
00089     DW_TAG_format_label = 0x4101,  /* for FORTRAN 77 and Fortran 90 */
00090     DW_TAG_function_template = 0x4102,    /* for C++ */
00091     DW_TAG_class_template = 0x4103,       /* for C++ */
00092     DW_TAG_GNU_BINCL = 0x4104,
00093     DW_TAG_GNU_EINCL = 0x4105
00094   };
00095 
00096 #define DW_TAG_lo_user      0x4080
00097 #define DW_TAG_hi_user      0xffff
00098 
00099 /* flag that tells whether entry has a child or not */
00100 #define DW_children_no   0
00101 #define       DW_children_yes  1
00102 
00103 /* Form names and codes.  */
00104 enum dwarf_form
00105   {
00106     DW_FORM_addr = 0x01,
00107     DW_FORM_block2 = 0x03,
00108     DW_FORM_block4 = 0x04,
00109     DW_FORM_data2 = 0x05,
00110     DW_FORM_data4 = 0x06,
00111     DW_FORM_data8 = 0x07,
00112     DW_FORM_string = 0x08,
00113     DW_FORM_block = 0x09,
00114     DW_FORM_block1 = 0x0a,
00115     DW_FORM_data1 = 0x0b,
00116     DW_FORM_flag = 0x0c,
00117     DW_FORM_sdata = 0x0d,
00118     DW_FORM_strp = 0x0e,
00119     DW_FORM_udata = 0x0f,
00120     DW_FORM_ref_addr = 0x10,
00121     DW_FORM_ref1 = 0x11,
00122     DW_FORM_ref2 = 0x12,
00123     DW_FORM_ref4 = 0x13,
00124     DW_FORM_ref8 = 0x14,
00125     DW_FORM_ref_udata = 0x15,
00126     DW_FORM_indirect = 0x16
00127   };
00128 
00129 /* Attribute names and codes.  */
00130 
00131 enum dwarf_attribute
00132   {
00133     DW_AT_sibling = 0x01,
00134     DW_AT_location = 0x02,
00135     DW_AT_name = 0x03,
00136     DW_AT_ordering = 0x09,
00137     DW_AT_subscr_data = 0x0a,
00138     DW_AT_byte_size = 0x0b,
00139     DW_AT_bit_offset = 0x0c,
00140     DW_AT_bit_size = 0x0d,
00141     DW_AT_element_list = 0x0f,
00142     DW_AT_stmt_list = 0x10,
00143     DW_AT_low_pc = 0x11,
00144     DW_AT_high_pc = 0x12,
00145     DW_AT_language = 0x13,
00146     DW_AT_member = 0x14,
00147     DW_AT_discr = 0x15,
00148     DW_AT_discr_value = 0x16,
00149     DW_AT_visibility = 0x17,
00150     DW_AT_import = 0x18,
00151     DW_AT_string_length = 0x19,
00152     DW_AT_common_reference = 0x1a,
00153     DW_AT_comp_dir = 0x1b,
00154     DW_AT_const_value = 0x1c,
00155     DW_AT_containing_type = 0x1d,
00156     DW_AT_default_value = 0x1e,
00157     DW_AT_inline = 0x20,
00158     DW_AT_is_optional = 0x21,
00159     DW_AT_lower_bound = 0x22,
00160     DW_AT_producer = 0x25,
00161     DW_AT_prototyped = 0x27,
00162     DW_AT_return_addr = 0x2a,
00163     DW_AT_start_scope = 0x2c,
00164     DW_AT_stride_size = 0x2e,
00165     DW_AT_upper_bound = 0x2f,
00166     DW_AT_abstract_origin = 0x31,
00167     DW_AT_accessibility = 0x32,
00168     DW_AT_address_class = 0x33,
00169     DW_AT_artificial = 0x34,
00170     DW_AT_base_types = 0x35,
00171     DW_AT_calling_convention = 0x36,
00172     DW_AT_count = 0x37,
00173     DW_AT_data_member_location = 0x38,
00174     DW_AT_decl_column = 0x39,
00175     DW_AT_decl_file = 0x3a,
00176     DW_AT_decl_line = 0x3b,
00177     DW_AT_declaration = 0x3c,
00178     DW_AT_discr_list = 0x3d,
00179     DW_AT_encoding = 0x3e,
00180     DW_AT_external = 0x3f,
00181     DW_AT_frame_base = 0x40,
00182     DW_AT_friend = 0x41,
00183     DW_AT_identifier_case = 0x42,
00184     DW_AT_macro_info = 0x43,
00185     DW_AT_namelist_items = 0x44,
00186     DW_AT_priority = 0x45,
00187     DW_AT_segment = 0x46,
00188     DW_AT_specification = 0x47,
00189     DW_AT_static_link = 0x48,
00190     DW_AT_type = 0x49,
00191     DW_AT_use_location = 0x4a,
00192     DW_AT_variable_parameter = 0x4b,
00193     DW_AT_virtuality = 0x4c,
00194     DW_AT_vtable_elem_location = 0x4d,
00195     /* SGI/MIPS Extensions */
00196     DW_AT_MIPS_fde = 0x2001,
00197     DW_AT_MIPS_loop_begin = 0x2002,
00198     DW_AT_MIPS_tail_loop_begin = 0x2003,
00199     DW_AT_MIPS_epilog_begin = 0x2004,
00200     DW_AT_MIPS_loop_unroll_factor = 0x2005,
00201     DW_AT_MIPS_software_pipeline_depth = 0x2006,
00202     DW_AT_MIPS_linkage_name = 0x2007,
00203     DW_AT_MIPS_stride = 0x2008,
00204     DW_AT_MIPS_abstract_name = 0x2009,
00205     DW_AT_MIPS_clone_origin = 0x200a,
00206     DW_AT_MIPS_has_inlines = 0x200b,
00207     /* GNU extensions.  */
00208     DW_AT_sf_names = 0x2101,
00209     DW_AT_src_info = 0x2102,
00210     DW_AT_mac_info = 0x2103,
00211     DW_AT_src_coords = 0x2104,
00212     DW_AT_body_begin = 0x2105,
00213     DW_AT_body_end = 0x2106
00214   };
00215 
00216 #define DW_AT_lo_user       0x2000 /* implementation-defined range start */
00217 #define DW_AT_hi_user       0x3ff0 /* implementation-defined range end */
00218 
00219 /* Location atom names and codes.  */
00220 
00221 enum dwarf_location_atom
00222   {
00223     DW_OP_addr = 0x03,
00224     DW_OP_deref = 0x06,
00225     DW_OP_const1u = 0x08,
00226     DW_OP_const1s = 0x09,
00227     DW_OP_const2u = 0x0a,
00228     DW_OP_const2s = 0x0b,
00229     DW_OP_const4u = 0x0c,
00230     DW_OP_const4s = 0x0d,
00231     DW_OP_const8u = 0x0e,
00232     DW_OP_const8s = 0x0f,
00233     DW_OP_constu = 0x10,
00234     DW_OP_consts = 0x11,
00235     DW_OP_dup = 0x12,
00236     DW_OP_drop = 0x13,
00237     DW_OP_over = 0x14,
00238     DW_OP_pick = 0x15,
00239     DW_OP_swap = 0x16,
00240     DW_OP_rot = 0x17,
00241     DW_OP_xderef = 0x18,
00242     DW_OP_abs = 0x19,
00243     DW_OP_and = 0x1a,
00244     DW_OP_div = 0x1b,
00245     DW_OP_minus = 0x1c,
00246     DW_OP_mod = 0x1d,
00247     DW_OP_mul = 0x1e,
00248     DW_OP_neg = 0x1f,
00249     DW_OP_not = 0x20,
00250     DW_OP_or = 0x21,
00251     DW_OP_plus = 0x22,
00252     DW_OP_plus_uconst = 0x23,
00253     DW_OP_shl = 0x24,
00254     DW_OP_shr = 0x25,
00255     DW_OP_shra = 0x26,
00256     DW_OP_xor = 0x27,
00257     DW_OP_bra = 0x28,
00258     DW_OP_eq = 0x29,
00259     DW_OP_ge = 0x2a,
00260     DW_OP_gt = 0x2b,
00261     DW_OP_le = 0x2c,
00262     DW_OP_lt = 0x2d,
00263     DW_OP_ne = 0x2e,
00264     DW_OP_skip = 0x2f,
00265     DW_OP_lit0 = 0x30,
00266     DW_OP_lit1 = 0x31,
00267     DW_OP_lit2 = 0x32,
00268     DW_OP_lit3 = 0x33,
00269     DW_OP_lit4 = 0x34,
00270     DW_OP_lit5 = 0x35,
00271     DW_OP_lit6 = 0x36,
00272     DW_OP_lit7 = 0x37,
00273     DW_OP_lit8 = 0x38,
00274     DW_OP_lit9 = 0x39,
00275     DW_OP_lit10 = 0x3a,
00276     DW_OP_lit11 = 0x3b,
00277     DW_OP_lit12 = 0x3c,
00278     DW_OP_lit13 = 0x3d,
00279     DW_OP_lit14 = 0x3e,
00280     DW_OP_lit15 = 0x3f,
00281     DW_OP_lit16 = 0x40,
00282     DW_OP_lit17 = 0x41,
00283     DW_OP_lit18 = 0x42,
00284     DW_OP_lit19 = 0x43,
00285     DW_OP_lit20 = 0x44,
00286     DW_OP_lit21 = 0x45,
00287     DW_OP_lit22 = 0x46,
00288     DW_OP_lit23 = 0x47,
00289     DW_OP_lit24 = 0x48,
00290     DW_OP_lit25 = 0x49,
00291     DW_OP_lit26 = 0x4a,
00292     DW_OP_lit27 = 0x4b,
00293     DW_OP_lit28 = 0x4c,
00294     DW_OP_lit29 = 0x4d,
00295     DW_OP_lit30 = 0x4e,
00296     DW_OP_lit31 = 0x4f,
00297     DW_OP_reg0 = 0x50,
00298     DW_OP_reg1 = 0x51,
00299     DW_OP_reg2 = 0x52,
00300     DW_OP_reg3 = 0x53,
00301     DW_OP_reg4 = 0x54,
00302     DW_OP_reg5 = 0x55,
00303     DW_OP_reg6 = 0x56,
00304     DW_OP_reg7 = 0x57,
00305     DW_OP_reg8 = 0x58,
00306     DW_OP_reg9 = 0x59,
00307     DW_OP_reg10 = 0x5a,
00308     DW_OP_reg11 = 0x5b,
00309     DW_OP_reg12 = 0x5c,
00310     DW_OP_reg13 = 0x5d,
00311     DW_OP_reg14 = 0x5e,
00312     DW_OP_reg15 = 0x5f,
00313     DW_OP_reg16 = 0x60,
00314     DW_OP_reg17 = 0x61,
00315     DW_OP_reg18 = 0x62,
00316     DW_OP_reg19 = 0x63,
00317     DW_OP_reg20 = 0x64,
00318     DW_OP_reg21 = 0x65,
00319     DW_OP_reg22 = 0x66,
00320     DW_OP_reg23 = 0x67,
00321     DW_OP_reg24 = 0x68,
00322     DW_OP_reg25 = 0x69,
00323     DW_OP_reg26 = 0x6a,
00324     DW_OP_reg27 = 0x6b,
00325     DW_OP_reg28 = 0x6c,
00326     DW_OP_reg29 = 0x6d,
00327     DW_OP_reg30 = 0x6e,
00328     DW_OP_reg31 = 0x6f,
00329     DW_OP_breg0 = 0x70,
00330     DW_OP_breg1 = 0x71,
00331     DW_OP_breg2 = 0x72,
00332     DW_OP_breg3 = 0x73,
00333     DW_OP_breg4 = 0x74,
00334     DW_OP_breg5 = 0x75,
00335     DW_OP_breg6 = 0x76,
00336     DW_OP_breg7 = 0x77,
00337     DW_OP_breg8 = 0x78,
00338     DW_OP_breg9 = 0x79,
00339     DW_OP_breg10 = 0x7a,
00340     DW_OP_breg11 = 0x7b,
00341     DW_OP_breg12 = 0x7c,
00342     DW_OP_breg13 = 0x7d,
00343     DW_OP_breg14 = 0x7e,
00344     DW_OP_breg15 = 0x7f,
00345     DW_OP_breg16 = 0x80,
00346     DW_OP_breg17 = 0x81,
00347     DW_OP_breg18 = 0x82,
00348     DW_OP_breg19 = 0x83,
00349     DW_OP_breg20 = 0x84,
00350     DW_OP_breg21 = 0x85,
00351     DW_OP_breg22 = 0x86,
00352     DW_OP_breg23 = 0x87,
00353     DW_OP_breg24 = 0x88,
00354     DW_OP_breg25 = 0x89,
00355     DW_OP_breg26 = 0x8a,
00356     DW_OP_breg27 = 0x8b,
00357     DW_OP_breg28 = 0x8c,
00358     DW_OP_breg29 = 0x8d,
00359     DW_OP_breg30 = 0x8e,
00360     DW_OP_breg31 = 0x8f,
00361     DW_OP_regx = 0x90,
00362     DW_OP_fbreg = 0x91,
00363     DW_OP_bregx = 0x92,
00364     DW_OP_piece = 0x93,
00365     DW_OP_deref_size = 0x94,
00366     DW_OP_xderef_size = 0x95,
00367     DW_OP_nop = 0x96
00368   };
00369 
00370 #define DW_OP_lo_user       0x80   /* implementation-defined range start */
00371 #define DW_OP_hi_user       0xff   /* implementation-defined range end */
00372 
00373 /* Type encodings.  */
00374 
00375 enum dwarf_type
00376   {
00377     DW_ATE_void = 0x0,
00378     DW_ATE_address = 0x1,
00379     DW_ATE_boolean = 0x2,
00380     DW_ATE_complex_float = 0x3,
00381     DW_ATE_float = 0x4,
00382     DW_ATE_signed = 0x5,
00383     DW_ATE_signed_char = 0x6,
00384     DW_ATE_unsigned = 0x7,
00385     DW_ATE_unsigned_char = 0x8
00386   };
00387 
00388 #define       DW_ATE_lo_user 0x80
00389 #define       DW_ATE_hi_user 0xff
00390 
00391 /* Array ordering names and codes.  */
00392 enum dwarf_array_dim_ordering
00393   {
00394     DW_ORD_row_major = 0,
00395     DW_ORD_col_major = 1
00396   };
00397 
00398 /* access attribute */
00399 enum dwarf_access_attribute
00400   {
00401     DW_ACCESS_public = 1,
00402     DW_ACCESS_protected = 2,
00403     DW_ACCESS_private = 3
00404   };
00405 
00406 /* visibility */
00407 enum dwarf_visibility_attribute
00408   {
00409     DW_VIS_local = 1,
00410     DW_VIS_exported = 2,
00411     DW_VIS_qualified = 3
00412   };
00413 
00414 /* virtuality */
00415 enum dwarf_virtuality_attribute
00416   {
00417     DW_VIRTUALITY_none = 0,
00418     DW_VIRTUALITY_virtual = 1,
00419     DW_VIRTUALITY_pure_virtual = 2
00420   };
00421 
00422 /* case sensitivity */
00423 enum dwarf_id_case
00424   {
00425     DW_ID_case_sensitive = 0,
00426     DW_ID_up_case = 1,
00427     DW_ID_down_case = 2,
00428     DW_ID_case_insensitive = 3
00429   };
00430 
00431 /* calling convention */
00432 enum dwarf_calling_convention
00433   {
00434     DW_CC_normal = 0x1,
00435     DW_CC_program = 0x2,
00436     DW_CC_nocall = 0x3
00437   };
00438 
00439 #define DW_CC_lo_user 0x40
00440 #define DW_CC_hi_user 0xff
00441 
00442 /* inline attribute */
00443 enum dwarf_inline_attribute
00444   {
00445     DW_INL_not_inlined = 0,
00446     DW_INL_inlined = 1,
00447     DW_INL_declared_not_inlined = 2,
00448     DW_INL_declared_inlined = 3
00449   };
00450 
00451 /* discriminant lists */
00452 enum dwarf_discrim_list
00453   {
00454     DW_DSC_label = 0,
00455     DW_DSC_range = 1
00456   };
00457 
00458 /* line number opcodes */
00459 enum dwarf_line_number_ops
00460   {
00461     DW_LNS_extended_op = 0,
00462     DW_LNS_copy = 1,
00463     DW_LNS_advance_pc = 2,
00464     DW_LNS_advance_line = 3,
00465     DW_LNS_set_file = 4,
00466     DW_LNS_set_column = 5,
00467     DW_LNS_negate_stmt = 6,
00468     DW_LNS_set_basic_block = 7,
00469     DW_LNS_const_add_pc = 8,
00470     DW_LNS_fixed_advance_pc = 9
00471   };
00472 
00473 /* line number extended opcodes */
00474 enum dwarf_line_number_x_ops
00475   {
00476     DW_LNE_end_sequence = 1,
00477     DW_LNE_set_address = 2,
00478     DW_LNE_define_file = 3
00479   };
00480 
00481 /* call frame information */
00482 enum dwarf_call_frame_info
00483   {
00484     DW_CFA_advance_loc = 0x40,
00485     DW_CFA_offset = 0x80,
00486     DW_CFA_restore = 0xc0,
00487     DW_CFA_nop = 0x00,
00488     DW_CFA_set_loc = 0x01,
00489     DW_CFA_advance_loc1 = 0x02,
00490     DW_CFA_advance_loc2 = 0x03,
00491     DW_CFA_advance_loc4 = 0x04,
00492     DW_CFA_offset_extended = 0x05,
00493     DW_CFA_restore_extended = 0x06,
00494     DW_CFA_undefined = 0x07,
00495     DW_CFA_same_value = 0x08,
00496     DW_CFA_register = 0x09,
00497     DW_CFA_remember_state = 0x0a,
00498     DW_CFA_restore_state = 0x0b,
00499     DW_CFA_def_cfa = 0x0c,
00500     DW_CFA_def_cfa_register = 0x0d,
00501     DW_CFA_def_cfa_offset = 0x0e,
00502     DW_CFA_def_cfa_expression = 0x0f,
00503     DW_CFA_expression = 0x10,
00504     /* Dwarf 2.1 */
00505     DW_CFA_offset_extended_sf = 0x11,
00506     DW_CFA_def_cfa_sf = 0x12,
00507     DW_CFA_def_cfa_offset_sf = 0x13,
00508 
00509     /* SGI/MIPS specific */
00510     DW_CFA_MIPS_advance_loc8 = 0x1d,
00511 
00512     /* GNU extensions */
00513     DW_CFA_GNU_window_save = 0x2d,
00514     DW_CFA_GNU_args_size = 0x2e,
00515     DW_CFA_GNU_negative_offset_extended = 0x2f
00516   };
00517 
00518 #define DW_CIE_ID      0xffffffff
00519 #define DW_CIE_VERSION        1
00520 
00521 #define DW_CFA_extended   0
00522 #define DW_CFA_low_user   0x1c
00523 #define DW_CFA_high_user  0x3f
00524 
00525 #define DW_CHILDREN_no                  0x00
00526 #define DW_CHILDREN_yes                 0x01
00527 
00528 #define DW_ADDR_none        0
00529 
00530 /* Source language names and codes.  */
00531 
00532 enum dwarf_source_language
00533   {
00534     DW_LANG_C89 = 0x0001,
00535     DW_LANG_C = 0x0002,
00536     DW_LANG_Ada83 = 0x0003,
00537     DW_LANG_C_plus_plus = 0x0004,
00538     DW_LANG_Cobol74 = 0x0005,
00539     DW_LANG_Cobol85 = 0x0006,
00540     DW_LANG_Fortran77 = 0x0007,
00541     DW_LANG_Fortran90 = 0x0008,
00542     DW_LANG_Pascal83 = 0x0009,
00543     DW_LANG_Modula2 = 0x000a,
00544     DW_LANG_Java = 0x000b,
00545     DW_LANG_Mips_Assembler = 0x8001
00546   };
00547 
00548 
00549 #define DW_LANG_lo_user 0x8000     /* implementation-defined range start */
00550 #define DW_LANG_hi_user 0xffff     /* implementation-defined range start */
00551 
00552 /* Names and codes for macro information.  */
00553 
00554 enum dwarf_macinfo_record_type
00555   {
00556     DW_MACINFO_define = 1,
00557     DW_MACINFO_undef = 2,
00558     DW_MACINFO_start_file = 3,
00559     DW_MACINFO_end_file = 4,
00560     DW_MACINFO_vendor_ext = 255
00561   };
00562 
00563 
00564 /* @@@ For use with GNU frame unwind information.  */
00565 
00566 #define DW_EH_PE_absptr            0x00
00567 #define DW_EH_PE_omit              0xff
00568 
00569 #define DW_EH_PE_uleb128    0x01
00570 #define DW_EH_PE_udata2            0x02
00571 #define DW_EH_PE_udata4            0x03
00572 #define DW_EH_PE_udata8            0x04
00573 #define DW_EH_PE_sleb128    0x09
00574 #define DW_EH_PE_sdata2            0x0A
00575 #define DW_EH_PE_sdata4            0x0B
00576 #define DW_EH_PE_sdata8            0x0C
00577 #define DW_EH_PE_signed            0x08
00578 
00579 #define DW_EH_PE_pcrel             0x10
00580 #define DW_EH_PE_textrel    0x20
00581 #define DW_EH_PE_datarel    0x30
00582 #define DW_EH_PE_funcrel    0x40
00583 #define DW_EH_PE_aligned    0x50
00584 
00585 #define DW_EH_PE_indirect   0x80