Module: WORF::Constants

Defined in:
lib/worf.rb,
lib/worf/constants.rb

Constant Summary collapse

TAG_TO_NAME =
constants.grep(/TAG/).each_with_object([]) { |c, o|
  v = const_get(c)
  if v < DW_TAG_low_user
    o[const_get(c)] = c
  end
}
DW_UT_compile =

Table 7.2 Unit Header Types Unit header unit type encodings | Value

0x01
DW_UT_type =
0x02
DW_UT_partial =
0x03
DW_UT_skeleton =
0x04
DW_UT_split_compile =
0x05
DW_UT_split_type =
0x06
DW_UT_lo_user =
0x80
DW_UT_hi_user =
0xff
DW_TAG_array_type =

Table 7.3: Tag encodings Tag name | Value

0x01
DW_TAG_class_type =
0x02
DW_TAG_entry_point =
0x03
DW_TAG_enumeration_type =
0x04
DW_TAG_formal_parameter =
0x05
DW_TAG_imported_declaration =

Reserved = 0x06 Reserved = 0x07

0x08
DW_TAG_label =

Reserved = 0x09

0x0a
DW_TAG_lexical_block =
0x0b
DW_TAG_member =

Reserved = 0x0c

0x0d
DW_TAG_pointer_type =

Reserved = 0x0e

0x0f
DW_TAG_reference_type =
0x10
DW_TAG_compile_unit =
0x11
DW_TAG_string_type =
0x12
DW_TAG_structure_type =
0x13
DW_TAG_subroutine_type =

Reserved = 0x14

0x15
DW_TAG_typedef =
0x16
DW_TAG_union_type =
0x17
DW_TAG_unspecified_parameters =
0x18
DW_TAG_variant =
0x19
DW_TAG_common_block =
0x1a
DW_TAG_common_inclusion =
0x1b
DW_TAG_inheritance =
0x1c
DW_TAG_inlined_subroutine =
0x1d
DW_TAG_module =
0x1e
DW_TAG_ptr_to_member_type =
0x1f
DW_TAG_set_type =
0x20
DW_TAG_subrange_type =
0x21
DW_TAG_with_stmt =
0x22
DW_TAG_access_declaration =
0x23
DW_TAG_base_type =
0x24
DW_TAG_catch_block =
0x25
DW_TAG_const_type =
0x26
DW_TAG_constant =
0x27
DW_TAG_enumerator =
0x28
DW_TAG_file_type =
0x29
DW_TAG_friend =
0x2a
DW_TAG_namelist =
0x2b
DW_TAG_namelist_item =
0x2c
DW_TAG_packed_type =
0x2d
DW_TAG_subprogram =
0x2e
DW_TAG_template_type_parameter =
0x2f
DW_TAG_template_value_parameter =
0x30
DW_TAG_thrown_type =
0x31
DW_TAG_try_block =
0x32
DW_TAG_variant_part =
0x33
DW_TAG_variable =
0x34
DW_TAG_volatile_type =
0x35
DW_TAG_dwarf_procedure =
0x36
DW_TAG_restrict_type =
0x37
DW_TAG_interface_type =
0x38
DW_TAG_namespace =
0x39
DW_TAG_imported_module =
0x3a
DW_TAG_unspecified_type =
0x3b
DW_TAG_partial_unit =
0x3c
DW_TAG_imported_unit =
0x3d
DW_TAG_condition =

Reserved = 0x3e1

0x3f
DW_TAG_shared_type =
0x40
DW_TAG_type_unit =
0x41
DW_TAG_rvalue_reference_type =
0x42
DW_TAG_template_alias =
0x43
DW_TAG_coarray_type =
0x44
DW_TAG_generic_subrange =
0x45
DW_TAG_dynamic_type =
0x46
DW_TAG_atomic_type =
0x47
DW_TAG_call_site =
0x48
DW_TAG_call_site_parameter =
0x49
DW_TAG_skeleton_unit =
0x4a
DW_TAG_immutable_type =
0x4b
DW_TAG_low_user =
0x4080
DW_TAG_hi_user =
0xffff
DW_CHILDREN_no =

Table 7.4: Child determination encodings Children determination name | Value

0x00
DW_CHILDREN_yes =
0x01
DW_AT_sibling =

Table 7.5: Attribute encodings Attribute name | Value | Classes

0x01
DW_AT_location =

reference

0x02
DW_AT_name =

exprloc, loclist

0x03
DW_AT_ordering =

Reserved = 0x04 # not applicable Reserved = 0x05 # not applicable Reserved = 0x06 # not applicable Reserved = 0x07 # not applicable Reserved = 0x08 # not applicable

0x09
DW_AT_byte_size =

Reserved = 0x0a # not applicable

0x0b
DW_AT_bit_size =

Reserved = 0x0c # constant, exprloc, reference

0x0d
DW_AT_stmt_list =

Reserved = 0x0e # not applicable Reserved = 0x0f # not applicable

0x10
DW_AT_low_pc =

lineptr

0x11
DW_AT_high_pc =

address

0x12
DW_AT_language =

address, constant

0x13
DW_AT_discr =

Reserved = 0x14 # not applicable

0x15
DW_AT_discr_value =

reference

0x16
DW_AT_visibility =

constant

0x17
DW_AT_import =

constant

0x18
DW_AT_string_length =

reference

0x19
DW_AT_common_reference =

exprloc, loclist, reference

0x1a
DW_AT_comp_dir =

reference

0x1b
DW_AT_const_value =

string

0x1c
DW_AT_containing_type =

block, constant, string

0x1d
DW_AT_default_value =

reference

0x1e
DW_AT_inline =

Reserved = 0x1f # not applicable

0x20
DW_AT_is_optional =

constant

0x21
DW_AT_lower_bound =

flag

0x22
DW_AT_producer =

Reserved = 0x23 # not applicable Reserved = 0x24 # not applicable

0x25
DW_AT_prototyped =

Reserved = 0x26 # not applicable

0x27
DW_AT_return_addr =

Reserved = 0x28 # not applicable Reserved = 0x29 # not applicable

0x2a
DW_AT_start_scope =

Reserved = 0x2b # not applicable

0x2c
DW_AT_bit_stride =

Reserved = 0x2d # not applicable

0x2e
DW_AT_upper_bound =

constant, exprloc, reference

0x2f
DW_AT_abstract_origin =

Reserved = 0x30 # not applicable

0x31
DW_AT_accessibility =

reference

0x32
DW_AT_address_class =

constant

0x33
DW_AT_artificial =

constant

0x34
DW_AT_base_types =

flag

0x35
DW_AT_calling_convention =

reference

0x36
DW_AT_count =

constant

0x37
DW_AT_data_member_location =

constant, exprloc, reference

0x38
DW_AT_decl_column =

constant, exprloc, loclist

0x39
DW_AT_decl_file =

constant

0x3a
DW_AT_decl_line =

constant

0x3b
DW_AT_declaration =

constant

0x3c
DW_AT_discr_list =

flag

0x3d
DW_AT_encoding =

block

0x3e
DW_AT_external =

constant

0x3f
DW_AT_frame_base =

flag

0x40
DW_AT_friend =

exprloc, loclist

0x41
DW_AT_identifier_case =

reference

0x42
DW_AT_namelist_item =

Reserved = 0x433 # macptr

0x44
DW_AT_priority =

reference

0x45
DW_AT_segment =

reference

0x46
DW_AT_specification =

exprloc, loclist

0x47
0x48
DW_AT_type =

exprloc, loclist

0x49
DW_AT_use_location =

reference

0x4a
DW_AT_variable_parameter =

exprloc, loclist

0x4b
DW_AT_virtuality =

flag

0x4c
DW_AT_vtable_elem_location =

constant

0x4d
DW_AT_allocated =

exprloc, loclist

0x4e
DW_AT_associated =

constant, exprloc, reference

0x4f
DW_AT_data_location =

constant, exprloc, reference

0x50
DW_AT_byte_stride =

exprloc

0x51
DW_AT_entry_pc =

constant, exprloc, reference

0x52
DW_AT_use_UTF8 =

address, constant

0x53
DW_AT_extension =

flag

0x54
DW_AT_ranges =

reference

0x55
DW_AT_trampoline =

rnglist

0x56
DW_AT_call_column =

address, flag, reference, string

0x57
DW_AT_call_file =

constant

0x58
DW_AT_call_line =

constant

0x59
DW_AT_description =

constant

0x5a
DW_AT_binary_scale =

string

0x5b
DW_AT_decimal_scale =

constant

0x5c
DW_AT_small =

constant

0x5d
DW_AT_decimal_sign =

reference

0x5e
DW_AT_digit_count =

constant

0x5f
DW_AT_picture_string =

constant

0x60
DW_AT_mutable =

string

0x61
DW_AT_threads_scaled =

flag

0x62
DW_AT_explicit =

flag

0x63
DW_AT_object_pointer =

flag

0x64
DW_AT_endianity =

reference

0x65
DW_AT_elemental =

constant

0x66
DW_AT_pure =

flag

0x67
DW_AT_recursive =

flag

0x68
DW_AT_signature =

flag

0x69
DW_AT_main_subprogram =

reference

0x6a
DW_AT_data_bit_offset =

flag

0x6b
DW_AT_const_expr =

constant

0x6c
DW_AT_enum_class =

flag

0x6d
DW_AT_linkage_name =

flag

0x6e
DW_AT_string_length_bit_size =

string

0x6f
DW_AT_string_length_byte_size =

constant

0x70
DW_AT_rank =

constant

0x71
DW_AT_str_offsets_base =

constant, exprloc

0x72
DW_AT_addr_base =

stroffsetsptr

0x73
DW_AT_rnglists_base =

addrptr

0x74
DW_AT_dwo_name =

Reserved = 0x75 # Unused

0x76
DW_AT_reference =

string

0x77
DW_AT_rvalue_reference =

flag

0x78
DW_AT_macros =

flag

0x79
DW_AT_call_all_calls =

macptr

0x7a
DW_AT_call_all_source_calls =

flag

0x7b
DW_AT_call_all_tail_calls =

flag

0x7c
DW_AT_call_return_pc =

flag

0x7d
DW_AT_call_value =

address

0x7e
DW_AT_call_origin =

exprloc

0x7f
DW_AT_call_parameter =

exprloc

0x80
DW_AT_call_pc =

reference

0x81
DW_AT_call_tail_call =

address

0x82
DW_AT_call_target =

flag

0x83
DW_AT_call_target_clobbered =

exprloc

0x84
DW_AT_call_data_location =

exprloc

0x85
DW_AT_call_data_value =

exprloc

0x86
DW_AT_noreturn =

exprloc

0x87
DW_AT_alignment =

flag

0x88
DW_AT_export_symbols =

constant

0x89
DW_AT_deleted =

flag

0x8a
DW_AT_defaulted =

flag

0x8b
DW_AT_loclists_base =

constant

0x8c
DW_AT_lo_user =

loclistsptr

0x2000
DW_AT_hi_user =
0x3fff
DW_FORM_addr =

Table 7.6: Attribute form encodings Form name | Value | Classes

0x01
DW_FORM_block2 =

Reserved = 0x02

0x03
DW_FORM_block4 =

block

0x04
DW_FORM_data2 =

block

0x05
DW_FORM_data4 =

constant

0x06
DW_FORM_data8 =

constant

0x07
DW_FORM_string =

constant

0x08
DW_FORM_block =

string

0x09
DW_FORM_block1 =

block

0x0a
DW_FORM_data1 =

block

0x0b
DW_FORM_flag =

constant

0x0c
DW_FORM_sdata =

flag

0x0d
DW_FORM_strp =

constant

0x0e
DW_FORM_udata =

string

0x0f
DW_FORM_ref_addr =

constant

0x10
DW_FORM_ref1 =

reference

0x11
DW_FORM_ref2 =

reference

0x12
DW_FORM_ref4 =

reference

0x13
DW_FORM_ref8 =

reference

0x14
DW_FORM_ref_udata =

reference

0x15
DW_FORM_indirect =

reference

0x16
DW_FORM_sec_offset =

(see Section 7.5.3 on page 203)

0x17
DW_FORM_exprloc =

addrptr, lineptr, loclist, loclistsptr, macptr, rnglist, rnglistsptr, stroffsetsptr

0x18
DW_FORM_flag_present =

exprloc

0x19
DW_FORM_strx =

flag

0x1a
DW_FORM_addrx =

string

0x1b
DW_FORM_ref_sup4 =

address

0x1c
DW_FORM_strp_sup =

reference

0x1d
DW_FORM_data16 =

string

0x1e
DW_FORM_line_strp =

constant

0x1f
DW_FORM_ref_sig8 =

string

0x20
DW_FORM_implicit_const =

reference

0x21
DW_FORM_loclistx =

constant

0x22
DW_FORM_rnglistx =

loclist

0x23
DW_FORM_ref_sup8 =

rnglist

0x24
DW_FORM_strx1 =

reference

0x25
DW_FORM_strx2 =

string

0x26
DW_FORM_strx3 =

string

0x27
DW_FORM_strx4 =

string

0x28
DW_FORM_addrx1 =

string

0x29
DW_FORM_addrx2 =

address

0x2a
DW_FORM_addrx3 =

address

0x2b
DW_FORM_addrx4 =

address

0x2c
DW_OP_addr =

Table 7.9: DWARF operation encodings Operation | Code | No. of Operands | Notes Reserved = 0x01 Reserved = 0x02

0x03
DW_OP_deref =

Reserved = 0x04 Reserved = 0x05

0x06
DW_OP_const1u =

Reserved = 0x07

0x08
DW_OP_const1s =

1 | 1-byte constant

0x09
DW_OP_const2u =

1 | 1-byte constant

0x0a
DW_OP_const2s =

1 | 2-byte constant

0x0b
DW_OP_const4u =

1 | 2-byte constant

0x0c
DW_OP_const4s =

1 | 4-byte constant

0x0d
DW_OP_const8u =

1 | 4-byte constant

0x0e
DW_OP_const8s =

1 | 8-byte constant

0x0f
DW_OP_constu =

1 | 8-byte constant

0x10
DW_OP_consts =

1 | ULEB128 constant

0x11
DW_OP_dup =

1 | SLEB128 constant

0x12
DW_OP_drop =

0

0x13
DW_OP_over =

0

0x14
DW_OP_pick =

0

0x15
DW_OP_swap =

1 | 1-byte stack index

0x16
DW_OP_rot =

0

0x17
DW_OP_xderef =

0

0x18
DW_OP_abs =

0

0x19
DW_OP_and =

0

0x1a
DW_OP_div =

0

0x1b
DW_OP_minus =

0

0x1c
DW_OP_mod =

0

0x1d
DW_OP_mul =

0

0x1e
DW_OP_neg =

0

0x1f
DW_OP_not =

0

0x20
DW_OP_or =

0

0x21
DW_OP_plus =

0

0x22
DW_OP_plus_uconst =

0

0x23
DW_OP_shl =

1 | ULEB128 addend

0x24
DW_OP_shr =

0

0x25
DW_OP_shra =

0

0x26
DW_OP_xor =

0

0x27
DW_OP_bra =

0

0x28
DW_OP_eq =

1 | signed 2-byte constant

0x29
DW_OP_ge =

0

0x2a
DW_OP_gt =

0

0x2b
DW_OP_le =

0

0x2c
DW_OP_lt =

0

0x2d
DW_OP_ne =

0

0x2e
DW_OP_skip =

0

0x2f
DW_OP_lit0 =

1 | signed 2-byte constant

0x30
DW_OP_lit1 =

0 | literal 0

0x31
DW_OP_lit2 =

0 | literal 1

0x32
DW_OP_lit3 =

0 | literal 2

0x33
DW_OP_lit4 =

0 | literal 3

0x34
DW_OP_lit5 =

0 | literal 4

0x35
DW_OP_lit6 =

0 | literal 5

0x36
DW_OP_lit7 =

0 | literal 6

0x37
DW_OP_lit8 =

0 | literal 7

0x38
DW_OP_lit9 =

0 | literal 8

0x39
DW_OP_lit10 =

0 | literal 9

0x3a
DW_OP_lit11 =

0 | literal 10

0x3b
DW_OP_lit12 =

0 | literal 11

0x3c
DW_OP_lit13 =

0 | literal 12

0x3d
DW_OP_lit14 =

0 | literal 13

0x3e
DW_OP_lit15 =

0 | literal 14

0x3f
DW_OP_lit16 =

0 | literal 15

0x40
DW_OP_lit17 =

0 | literal 16

0x41
DW_OP_lit18 =

0 | literal 17

0x42
DW_OP_lit19 =

0 | literal 18

0x43
DW_OP_lit20 =

0 | literal 19

0x44
DW_OP_lit21 =

0 | literal 20

0x45
DW_OP_lit22 =

0 | literal 21

0x46
DW_OP_lit23 =

0 | literal 22

0x47
DW_OP_lit24 =

0 | literal 23

0x48
DW_OP_lit25 =

0 | literal 24

0x49
DW_OP_lit26 =

0 | literal 25

0x4a
DW_OP_lit27 =

0 | literal 26

0x4b
DW_OP_lit28 =

0 | literal 27

0x4c
DW_OP_lit29 =

0 | literal 28

0x4d
DW_OP_lit30 =

0 | literal 29

0x4e
DW_OP_lit31 =

0 | literal 30

0x4f
DW_OP_reg0 =

0 | literal 31

0x50
DW_OP_reg1 =

0 | reg 0

0x51
DW_OP_reg2 =

0 | reg 1

0x52
DW_OP_reg3 =

0 | reg 2

0x53
DW_OP_reg4 =

0 | reg 3

0x54
DW_OP_reg5 =

0 | reg 4

0x55
DW_OP_reg6 =

0 | reg 5

0x56
DW_OP_reg7 =

0 | reg 6

0x57
DW_OP_reg8 =

0 | reg 7

0x58
DW_OP_reg9 =

0 | reg 8

0x59
DW_OP_reg10 =

0 | reg 9

0x5a
DW_OP_reg11 =

0 | reg 10

0x5b
DW_OP_reg12 =

0 | reg 11

0x5c
DW_OP_reg13 =

0 | reg 12

0x5d
DW_OP_reg14 =

0 | reg 13

0x5e
DW_OP_reg15 =

0 | reg 14

0x5f
DW_OP_reg16 =

0 | reg 15

0x60
DW_OP_reg17 =

0 | reg 16

0x61
DW_OP_reg18 =

0 | reg 17

0x62
DW_OP_reg19 =

0 | reg 18

0x63
DW_OP_reg20 =

0 | reg 19

0x64
DW_OP_reg21 =

0 | reg 20

0x65
DW_OP_reg22 =

0 | reg 21

0x66
DW_OP_reg23 =

0 | reg 22

0x67
DW_OP_reg24 =

0 | reg 23

0x68
DW_OP_reg25 =

0 | reg 24

0x69
DW_OP_reg26 =

0 | reg 25

0x6a
DW_OP_reg27 =

0 | reg 26

0x6b
DW_OP_reg28 =

0 | reg 27

0x6c
DW_OP_reg29 =

0 | reg 28

0x6d
DW_OP_reg30 =

0 | reg 29

0x6e
DW_OP_reg31 =

0 | reg 30

0x6f
DW_OP_breg0 =

0 | reg 31

0x70
DW_OP_breg1 =

1 | base register 0 SLEB128 offset

0x71
DW_OP_breg2 =

1 | base register 1 SLEB128 offset

0x72
DW_OP_breg3 =

1 | base register 2 SLEB128 offset

0x73
DW_OP_breg4 =

1 | base register 3 SLEB128 offset

0x74
DW_OP_breg5 =

1 | base register 4 SLEB128 offset

0x75
DW_OP_breg6 =

1 | base register 5 SLEB128 offset

0x76
DW_OP_breg7 =

1 | base register 6 SLEB128 offset

0x77
DW_OP_breg8 =

1 | base register 7 SLEB128 offset

0x78
DW_OP_breg9 =

1 | base register 8 SLEB128 offset

0x79
DW_OP_breg10 =

1 | base register 9 SLEB128 offset

0x7a
DW_OP_breg11 =

1 | base register 10 SLEB128 offset

0x7b
DW_OP_breg12 =

1 | base register 11 SLEB128 offset

0x7c
DW_OP_breg13 =

1 | base register 12 SLEB128 offset

0x7d
DW_OP_breg14 =

1 | base register 13 SLEB128 offset

0x7e
DW_OP_breg15 =

1 | base register 14 SLEB128 offset

0x7f
DW_OP_breg16 =

1 | base register 15 SLEB128 offset

0x80
DW_OP_breg17 =

1 | base register 16 SLEB128 offset

0x81
DW_OP_breg18 =

1 | base register 17 SLEB128 offset

0x82
DW_OP_breg19 =

1 | base register 18 SLEB128 offset

0x83
DW_OP_breg20 =

1 | base register 19 SLEB128 offset

0x84
DW_OP_breg21 =

1 | base register 20 SLEB128 offset

0x85
DW_OP_breg22 =

1 | base register 21 SLEB128 offset

0x86
DW_OP_breg23 =

1 | base register 22 SLEB128 offset

0x87
DW_OP_breg24 =

1 | base register 23 SLEB128 offset

0x88
DW_OP_breg25 =

1 | base register 24 SLEB128 offset

0x89
DW_OP_breg26 =

1 | base register 25 SLEB128 offset

0x8a
DW_OP_breg27 =

1 | base register 26 SLEB128 offset

0x8b
DW_OP_breg28 =

1 | base register 27 SLEB128 offset

0x8c
DW_OP_breg29 =

1 | base register 28 SLEB128 offset

0x8d
DW_OP_breg30 =

1 | base register 29 SLEB128 offset

0x8e
DW_OP_breg31 =

1 | base register 30 SLEB128 offset

0x8f
DW_OP_regx =

1 | base register 31 SLEB128 offset

0x90
DW_OP_fbreg =

1 | ULEB128 register

0x91
DW_OP_bregx =

1 | SLEB128 offset

0x92
DW_OP_piece =

2 | ULEB128 register, SLEB128 offset

0x93
DW_OP_deref_size =

1 | ULEB128 size of piece

0x94
DW_OP_xderef_size =

1 | 1-byte size of data retrieved

0x95
DW_OP_nop =

1 | 1-byte size of data retrieved

0x96
DW_OP_push_object_address =

0

0x97
DW_OP_call2 =

0

0x98
DW_OP_call4 =

1 | 2-byte offset of DIE

0x99
DW_OP_call_ref =

1 | 4-byte offset of DIE

0x9a
DW_OP_form_tls_address =

1 | 4- or 8-byte offset of DIE

0x9b
DW_OP_call_frame_cfa =

0

0x9c
DW_OP_bit_piece =

0

0x9d
DW_OP_implicit_value =

2 | ULEB128 size, ULEB128 offset

0x9e
DW_OP_stack_value =

2 | ULEB128 size, block of that size

0x9f
DW_OP_implicit_pointer =

0

0xa0
DW_OP_addrx =

2 | 4- or 8-byte offset of DIE, SLEB128 constant offset

0xa1
DW_OP_constx =

1 | ULEB128 indirect address

0xa2
DW_OP_entry_value =

1 | ULEB128 indirect constant

0xa3
DW_OP_const_type =

2 | ULEB128 size, block of that size

0xa4
DW_OP_regval_type =

3 | ULEB128 type entry offset, 1-byte size, constant value

0xa5
DW_OP_deref_type =

2 | ULEB128 register number, ULEB128 constant offset

0xa6
DW_OP_xderef_type =

2 | 1-byte size, ULEB128 type entry offset

0xa7
DW_OP_convert =

2 | 1-byte size, ULEB128 type entry offset

0xa8
DW_OP_reinterpret =

1 | ULEB128 type entry offset

0xa9
DW_OP_lo_user =

1 | ULEB128 type entry offset

0xe0
DW_OP_hi_user =
0xff
DW_LLE_end_of_list =

Table 7.10: Location list entry encoding values Location list entry encoding name | Value

0x00
DW_LLE_base_addressx =
0x01
DW_LLE_startx_endx =
0x02
DW_LLE_startx_length =
0x03
DW_LLE_offset_pair =
0x04
DW_LLE_default_location =
0x05
DW_LLE_base_address =
0x06
DW_LLE_start_end =
0x07
DW_LLE_start_length =
0x08
DW_ATE_address =

Table 7.11: Base type encoding values Base type encoding name | Value

0x01
DW_ATE_boolean =
0x02
DW_ATE_complex_float =
0x03
DW_ATE_float =
0x04
DW_ATE_signed =
0x05
DW_ATE_signed_char =
0x06
DW_ATE_unsigned =
0x07
DW_ATE_unsigned_char =
0x08
DW_ATE_imaginary_float =
0x09
DW_ATE_packed_decimal =
0x0a
DW_ATE_numeric_string =
0x0b
DW_ATE_edited =
0x0c
DW_ATE_signed_fixed =
0x0d
DW_ATE_unsigned_fixed =
0x0e
DW_ATE_decimal_float =
0x0f
DW_ATE_UTF =
0x10
DW_ATE_UCS =
0x11
DW_ATE_ASCII =
0x12
DW_ATE_lo_user =
0x80
DW_ATE_hi_user =
0xff
DW_DS_unsigned =

Table 7.12: Decimal sign encodings Decimal sign code name | Value

0x01
DW_DS_leading_overpunch =
0x02
DW_DS_trailing_overpunch =
0x03
DW_DS_leading_separate =
0x04
DW_DS_trailing_separate =
0x05
DW_END_default =

Table 7.13: Endianity encodings Endian code name | Value

0x00
DW_END_big =
0x01
DW_END_little =
0x02
DW_END_lo_user =
0x40
DW_END_hi_user =
0xff
DW_ACCESS_public =

Table 7.14: Accessibility encodings Accessibility code name | Value

0x01
DW_ACCESS_protected =
0x02
DW_ACCESS_private =
0x03
DW_VIS_local =

Table 7.15: Visibility encodings Visibility code name | Value

0x01
DW_VIS_exported =
0x02
DW_VIS_qualified =
0x03
DW_VIRTUALITY_none =

Table 7.16: Virtuality encodings Virtuality code name | Value

0x00
DW_VIRTUALITY_virtual =
0x01
DW_VIRTUALITY_pure_virtual =
0x02
DW_LANG_C89 =

Table 7.17: Language encodings Language name | Value | Default Lower Bound

0x01
DW_LANG_C =

0

0x02
DW_LANG_Ada83 =

0

0x03
DW_LANG_C_plus_plus =

1

0x04
DW_LANG_Cobol74 =

0

0x05
DW_LANG_Cobol85 =

1

0x06
DW_LANG_Fortran77 =

1

0x07
DW_LANG_Fortran90 =

1

0x08
DW_LANG_Pascal83 =

1

0x09
DW_LANG_Modula2 =

1

0x0a
DW_LANG_Java =

1

0x0b
DW_LANG_C99 =

0

0x0c
DW_LANG_Ada95 =

0

0x0d
DW_LANG_Fortran95 =

1

0x0e
DW_LANG_PLI =

1

0x0f
DW_LANG_ObjC =

1

0x10
DW_LANG_ObjC_plus_plus =

0

0x11
DW_LANG_UPC =

0

0x12
DW_LANG_D =

0

0x13
DW_LANG_Python =

0

0x14
DW_LANG_OpenCL =

0

0x15
DW_LANG_Go =

0

0x16
DW_LANG_Modula3 =

0

0x17
DW_LANG_Haskell =

1

0x18
DW_LANG_C_plus_plus_03 =

0

0x19
DW_LANG_C_plus_plus_11 =

0

0x1a
DW_LANG_OCaml =

0

0x1b
DW_LANG_Rust =

0

0x1c
DW_LANG_C11 =

0

0x1d
DW_LANG_Swift =

0

0x1e
DW_LANG_Julia =

0

0x1f
DW_LANG_Dylan =

1

0x20
DW_LANG_C_plus_plus_14 =

0

0x21
DW_LANG_Fortran03 =

0

0x22
DW_LANG_Fortran08 =

1

0x23
DW_LANG_RenderScript =

1

0x24
DW_LANG_BLISS =

0

0x25
DW_LANG_lo_user =

0

0x8000
DW_LANG_hi_user =
0xffff
DW_ID_case_sensitive =

Table 7.18: Identifier case encodings Identifier case name | Value

0x00
DW_ID_up_case =
0x01
DW_ID_down_case =
0x02
DW_ID_case_insensitive =
0x03
DW_CC_normal =

Table 7.19: Calling convention encodings Calling convention name | Value

0x01
DW_CC_program =
0x02
DW_CC_nocall =
0x03
DW_CC_pass_by_reference =
0x04
DW_CC_pass_by_value =
0x05
DW_CC_lo_user =
0x40
DW_CC_hi_user =
0xff
DW_INL_not_inlined =

Table 7.20: Inline encodings Inline code name | Value

0x00
DW_INL_inlined =
0x01
DW_INL_declared_not_inlined =
0x02
DW_INL_declared_inlined =
0x03
DW_ORD_row_major =

Table 7.21: Ordering encodings Ordering name | Value

0x00
DW_ORD_col_major =
0x01
DW_DSC_label =

Table 7.22: Discriminant descriptor encodings Descriptor name | Value

0x00
DW_DSC_range =
0x01
DW_IDX_compile_unit =

Table 7.23: Name index attribute encodings Attribute name | Value | Form/Class

0x01
DW_IDX_type_unit =

constant

0x02
DW_IDX_die_offset =

constant

0x03
DW_IDX_parent =

reference

0x04
DW_IDX_type_hash =

constant

0x05
DW_IDX_lo_user =

DW_FORM_data8

0x2000
DW_IDX_hi_user =
0x3fff
DW_DEFAULTED_no =

Table 7.24: Defaulted attribute encodings Defaulted name | Value

0x00
DW_DEFAULTED_in_class =
0x01
DW_DEFAULTED_out_of_class =
0x02
DW_LNS_copy =

Table 7.25: Line number standard opcode encodings Opcode name | Value

0x01
DW_LNS_advance_pc =
0x02
DW_LNS_advance_line =
0x03
DW_LNS_set_file =
0x04
DW_LNS_set_column =
0x05
DW_LNS_negate_stmt =
0x06
DW_LNS_set_basic_block =
0x07
DW_LNS_const_add_pc =
0x08
DW_LNS_fixed_advance_pc =
0x09
DW_LNS_set_prologue_end =
0x0a
DW_LNS_set_epilogue_begin =
0x0b
DW_LNS_set_isa =
0x0c
DW_LNE_end_sequence =

Table 7.26: Line number extended opcode encodings Opcode name | Value

0x01
DW_LNE_set_address =
0x02
DW_LNE_set_discriminator =

Reserved = 0x34

0x04
DW_LNE_lo_user =
0x80
DW_LNE_hi_user =
0xff
DW_LNCT_path =

Table 7.27: Line number header entry format encodings Line number header entry format name | Value

0x01
DW_LNCT_directory_index =
0x02
DW_LNCT_timestamp =
0x03
DW_LNCT_size =
0x04
DW_LNCT_MD5 =
0x05
DW_LNCT_lo_user =
0x2000
DW_LNCT_hi_user =
0x3fff
DW_MACRO_define =

Table 7.28: Macro information entry type encodings Macro information entry type name | Value

0x01
DW_MACRO_undef =
0x02
DW_MACRO_start_file =
0x03
DW_MACRO_end_file =
0x04
DW_MACRO_define_strp =
0x05
DW_MACRO_undef_strp =
0x06
DW_MACRO_import =
0x07
DW_MACRO_define_sup =
0x08
DW_MACRO_undef_sup =
0x09
DW_MACRO_import_sup =
0x0a
DW_MACRO_define_strx =
0x0b
DW_MACRO_undef_strx =
0x0c
DW_MACRO_lo_user =
0xe0
DW_MACRO_hi_user =
0xff
DW_CFA_advance_loc =

Table 7.29: Call frame instruction encodings Instruction | High 2 Bits | Low 6 Bits | Operand 1 | Operand 2

0x01
DW_CFA_offset =

delta | |

0x02
DW_CFA_restore =

register | ULEB128 offset

0x03
DW_CFA_nop =

register | |

0x00
DW_CFA_set_loc =

0 | |

0x00
DW_CFA_advance_loc1 =

1 | address

0x00
DW_CFA_advance_loc2 =

2 | 1-byte delta

0x00
DW_CFA_advance_loc4 =

3 | 2-byte delta

0x00
DW_CFA_offset_extended =

4 | 4-byte delta

0x00
DW_CFA_restore_extended =

5 | ULEB128 register | ULEB128 offset

0x00
DW_CFA_undefined =

6 | ULEB128 register

0x00
DW_CFA_same_value =

7 | ULEB128 register

0x00
DW_CFA_register =

8 | ULEB128 register

0x00
DW_CFA_remember_state =

9 | ULEB128 register | ULEB128 offset

0x00
DW_CFA_restore_state =

10 | |

0x00
DW_CFA_def_cfa =

11 | |

0x00
DW_CFA_def_cfa_register =

12 | ULEB128 register | ULEB128 offset

0x00
DW_CFA_def_cfa_offset =

13 | ULEB128 register

0x00
DW_CFA_def_cfa_expression =

14 | ULEB128 offset

0x00
DW_CFA_expression =

15 | BLOCK

0x00
DW_CFA_offset_extended_sf =

16 | ULEB128 register | BLOCK

0x00
DW_CFA_def_cfa_sf =

17 | ULEB128 register | SLEB128 offset

0x00
DW_CFA_def_cfa_offset_sf =

18 | ULEB128 register | SLEB128 offset

0x00
DW_CFA_val_offset =

19 | SLEB128 offset

0x00
DW_CFA_val_offset_sf =

20 | ULEB128 | ULEB128

0x00
DW_CFA_val_expression =

21 | ULEB128 | SLEB128

0x00
DW_CFA_lo_user =

22 | ULEB128 | BLOCK

0x00
DW_CFA_hi_user =

28 | |

0x00
DW_RLE_end_of_list =

Table 7.30: Range list entry encoding values Range list entry encoding name | Value

0x00
DW_RLE_base_addressx =
0x01
DW_RLE_startx_endx =
0x02
DW_RLE_startx_length =
0x03
DW_RLE_offset_pair =
0x04
DW_RLE_base_address =
0x05
DW_RLE_start_end =
0x06
DW_RLE_start_length =
0x07

Class Method Summary collapse

Class Method Details

.at_for(id) ⇒ Object



18
19
20
# File 'lib/worf.rb', line 18

def self.at_for id
  constants.grep(/_AT_/).find { |c| const_get(c) == id }
end

.form_for(id) ⇒ Object



22
23
24
# File 'lib/worf.rb', line 22

def self.form_for id
  constants.grep(/_FORM_/).find { |c| const_get(c) == id }
end

.tag_for(id) ⇒ Object



14
15
16
# File 'lib/worf.rb', line 14

def self.tag_for id
  TAG_TO_NAME[id]
end