debug::dwarf
debug::dwarf includes an implementation of the DWARF Debugging Information Format. The implementation is incomplete and, while it may be useful to third-parties, is mainly designed to support the needs of debug::'s runtime debugging features.
This module implements DWARF version 4.
Index
Types
type abbrev = struct {
code: u64,
tag: u32,
has_children: bool,
fields: []afield,
};
type afield = struct {
attr: u32,
form: u32,
};
type entry = struct {
tag: u32,
children: bool,
fields: []field,
};
type field = struct {
attr: u32,
form: u32,
union {
address: uintptr,
block: []u8,
constant: u64,
string: const str,
flag: bool,
reference: u64,
exprloc: []u8,
ptr: u64,
},
};
type line_file = struct {
name: str,
dir: u64,
mtime: u64,
length: u64,
};
type line_flag = enum uint {
NONE = 0,
IS_STMT = 1 << 0,
BASIC_BLOCK = 1 << 1,
END_SEQUENCE = 1 << 2,
PROLOGUE_END = 1 << 3,
EPILOGUE_BEGIN = 1 << 4,
};
type line_header = struct {
min_instr_length: u8,
max_ops_per_instr: u8,
default_isstmt: bool,
line_base: i8,
line_range: u8,
opcode_base: u8,
opcode_lengths: []u8,
dirs: []str,
files: []line_file,
};
type line_program = struct {
mem: *memio::stream,
rd: *table_reader,
state: line_state,
head: line_header,
};
type line_state = struct {
vm_loc: u64,
addr: uintptr,
op_index: uint,
file: uint,
line: uint,
column: uint,
flags: line_flag,
isa: uint,
discriminator: uint,
};
type abbrev_table = struct {
items: []abbrev,
};
type debug_info_reader = struct {
image: *image::image,
abbrev: abbrev_table,
strings: (string_table | void),
mem: *memio::stream,
rd: *table_reader,
};
type string_table = struct {
data: []u8,
};
type table_reader = struct {
src: *memio::stream,
orig_length: size,
length: size,
is64: bool,
};
Constants
def DW_AT_abstract_origin: u32 = 49;
def DW_AT_bit_size: u32 = 13;
def DW_AT_bit_stride: u32 = 46;
def DW_AT_byte_size: u32 = 11;
def DW_AT_discr: u32 = 21;
def DW_AT_dwo_name: u32 = 118;
def DW_AT_inline: u32 = 32;
def DW_AT_namelist_item: u32 = 68;
def DW_AT_ordering: u32 = 9;
def DW_AT_producer: u32 = 37;
def DW_AT_prototyped: u32 = 39;
def DW_AT_return_addr: u32 = 42;
def DW_AT_start_scope: u32 = 44;
def DW_AT_stmt_list: u32 = 16;
def DW_CFA_nop: u8 = 0;
def DW_FORM_block2: u32 = 3;
def DW_OP_addr: u8 = 3;
def DW_OP_const1u: u8 = 8;
def DW_OP_deref: u8 = 6;
def DW_TAG_condition: u32 = 63;
def DW_TAG_imported_declaration: u32 = 138;
def DW_TAG_label: u32 = 10;
def DW_TAG_member: u32 = 13;
def DW_TAG_pointer_type: u32 = 15;
def DW_TAG_subroutine_type: u32 = 21;
def DW_ACCESS_private: u8 = 3;
def DW_ACCESS_protected: u8 = 2;
def DW_ACCESS_public: u8 = 1;
def DW_ADDR_none: uint = 0;
def DW_ATE_ASCII: u8 = 18;
def DW_ATE_UCS: u8 = 17;
def DW_ATE_UTF: u8 = 16;
def DW_ATE_address: u8 = 1;
def DW_ATE_boolean: u8 = 2;
def DW_ATE_complex_float: u8 = 3;
def DW_ATE_decimal_float: u8 = 15;
def DW_ATE_edited: u8 = 12;
def DW_ATE_float: u8 = 4;
def DW_ATE_hi_user: u8 = 255;
def DW_ATE_imaginary_float: u8 = 9;
def DW_ATE_lo_user: u8 = 128;
def DW_ATE_numeric_string: u8 = 11;
def DW_ATE_packed_decimal: u8 = 10;
def DW_ATE_signed: u8 = 5;
def DW_ATE_signed_char: u8 = 6;
def DW_ATE_signed_fixed: u8 = 13;
def DW_ATE_unsigned: u8 = 7;
def DW_ATE_unsigned_char: u8 = 8;
def DW_ATE_unsigned_fixed: u8 = 14;
def DW_AT_accessibility: u32 = 50;
def DW_AT_addr_base: u32 = 115;
def DW_AT_address_class: u32 = 51;
def DW_AT_alignment: u32 = 136;
def DW_AT_allocated: u32 = 78;
def DW_AT_artificial: u32 = 52;
def DW_AT_associated: u32 = 79;
def DW_AT_base_types: u32 = 53;
def DW_AT_binary_scale: u32 = 91;
def DW_AT_byte_stride: u32 = 81;
def DW_AT_call_all_calls: u32 = 122;
def DW_AT_call_all_source_calls: u32 = 123;
def DW_AT_call_all_tail_calls: u32 = 124;
def DW_AT_call_column: u32 = 87;
def DW_AT_call_data_location: u32 = 133;
def DW_AT_call_data_value: u32 = 134;
def DW_AT_call_file: u32 = 88;
def DW_AT_call_line: u32 = 89;
def DW_AT_call_origin: u32 = 127;
def DW_AT_call_parameter: u32 = 128;
def DW_AT_call_pc: u32 = 129;
def DW_AT_call_return_pc: u32 = 125;
def DW_AT_call_tail_call: u32 = 130;
def DW_AT_call_target: u32 = 131;
def DW_AT_call_target_clobbered: u32 = 132;
def DW_AT_call_value: u32 = 126;
def DW_AT_calling_convention: u32 = 54;
def DW_AT_common_reference: u32 = 26;
def DW_AT_comp_dir: u32 = 27;
def DW_AT_const_expr: u32 = 108;
def DW_AT_const_value: u32 = 28;
def DW_AT_containing_type: u32 = 29;
def DW_AT_count: u32 = 55;
def DW_AT_data_bit_offset: u32 = 107;
def DW_AT_data_location: u32 = 80;
def DW_AT_data_member_location: u32 = 56;
def DW_AT_decimal_scale: u32 = 92;
def DW_AT_decimal_sign: u32 = 94;
def DW_AT_decl_column: u32 = 57;
def DW_AT_decl_file: u32 = 58;
def DW_AT_decl_line: u32 = 59;
def DW_AT_declaration: u32 = 60;
def DW_AT_default_value: u32 = 30;
def DW_AT_defaulted: u32 = 139;
def DW_AT_deleted: u32 = 138;
def DW_AT_description: u32 = 90;
def DW_AT_digit_count: u32 = 95;
def DW_AT_discr_list: u32 = 61;
def DW_AT_discr_value: u32 = 22;
def DW_AT_elemental: u32 = 102;
def DW_AT_encoding: u32 = 62;
def DW_AT_endianity: u32 = 101;
def DW_AT_entry_pc: u32 = 82;
def DW_AT_enum_class: u32 = 109;
def DW_AT_explicit: u32 = 99;
def DW_AT_export_symbols: u32 = 137;
def DW_AT_extension: u32 = 84;
def DW_AT_external: u32 = 63;
def DW_AT_frame_base: u32 = 64;
def DW_AT_friend: u32 = 65;
def DW_AT_hi_user: u32 = 16383;
def DW_AT_high_pc: u32 = 18;
def DW_AT_identifier_case: u32 = 66;
def DW_AT_import: u32 = 24;
def DW_AT_is_lower_bound: u32 = 34;
def DW_AT_is_optional: u32 = 33;
def DW_AT_language: u32 = 19;
def DW_AT_linkage_name: u32 = 110;
def DW_AT_lo_user: u32 = 8192;
def DW_AT_location: u32 = 2;
def DW_AT_loclists_base: u32 = 140;
def DW_AT_low_pc: u32 = 17;
def DW_AT_macros: u32 = 121;
def DW_AT_main_subprogram: u32 = 106;
def DW_AT_mutable: u32 = 97;
def DW_AT_name: u32 = 3;
def DW_AT_noreturn: u32 = 135;
def DW_AT_object_pointer: u32 = 100;
def DW_AT_picture_string: u32 = 96;
def DW_AT_priority: u32 = 69;
def DW_AT_pure: u32 = 103;
def DW_AT_ranges: u32 = 85;
def DW_AT_rank: u32 = 113;
def DW_AT_recursive: u32 = 104;
def DW_AT_reference: u32 = 119;
def DW_AT_rnglists_base: u32 = 116;
def DW_AT_rvalue_reference: u32 = 120;
def DW_AT_segment: u32 = 70;
def DW_AT_sibling: u32 = 1;
def DW_AT_signature: u32 = 105;
def DW_AT_small: u32 = 93;
def DW_AT_specification: u32 = 71;
def DW_AT_static_link: u32 = 72;
def DW_AT_str_offsets_base: u32 = 114;
def DW_AT_string_length: u32 = 25;
def DW_AT_string_length_bit_size: u32 = 111;
def DW_AT_string_length_byte_size: u32 = 112;
def DW_AT_threads_scaled: u32 = 98;
def DW_AT_trampoline: u32 = 86;
def DW_AT_type: u32 = 73;
def DW_AT_upper_bound: u32 = 47;
def DW_AT_use_UTF8: u32 = 83;
def DW_AT_use_location: u32 = 74;
def DW_AT_variable_parameter: u32 = 75;
def DW_AT_virtuality: u32 = 76;
def DW_AT_visibility: u32 = 23;
def DW_AT_vtable_elem_location: u32 = 77;
def DW_CC_hi_user: u8 = 255;
def DW_CC_lo_user: u8 = 64;
def DW_CC_nocall: u8 = 3;
def DW_CC_normal: u8 = 1;
def DW_CC_pass_by_reference: u8 = 4;
def DW_CC_pass_by_value: u8 = 5;
def DW_CC_program: u8 = 2;
def DW_CFA_advance_loc1: u8 = 2;
def DW_CFA_advance_loc2: u8 = 3;
def DW_CFA_advance_loc3: u8 = 4;
def DW_CFA_def_cfa: u8 = 12;
def DW_CFA_def_cfa_expression: u8 = 15;
def DW_CFA_def_cfa_offset: u8 = 14;
def DW_CFA_def_cfa_offset_sf: u8 = 19;
def DW_CFA_def_cfa_register: u8 = 13;
def DW_CFA_def_cfa_sf: u8 = 18;
def DW_CFA_expression: u8 = 16;
def DW_CFA_hi_user: u8 = 63;
def DW_CFA_lo_user: u8 = 28;
def DW_CFA_offset_extended: u8 = 5;
def DW_CFA_offset_extended_sf: u8 = 17;
def DW_CFA_register: u8 = 9;
def DW_CFA_remember_state: u8 = 10;
def DW_CFA_restore_extended: u8 = 6;
def DW_CFA_restore_state: u8 = 11;
def DW_CFA_same_value: u8 = 8;
def DW_CFA_set_loc: u8 = 1;
def DW_CFA_undefined: u8 = 7;
def DW_CFA_val_expression: u8 = 22;
def DW_CFA_val_offset: u8 = 20;
def DW_CFA_val_offset_sf: u8 = 21;
def DW_CHILDREN_no: uint = 0;
def DW_CHILDREN_yes: uint = 1;
def DW_DEFAULTED_in_class: u8 = 1;
def DW_DEFAULTED_no: u8 = 0;
def DW_DEFAULTED_out_of_class: u8 = 2;
def DW_DSC_label: u8 = 0;
def DW_DSC_range: u8 = 1;
def DW_DS_leading_overpunch: u8 = 2;
def DW_DS_leading_separate: u8 = 4;
def DW_DS_trailing_overpunch: u8 = 3;
def DW_DS_trailing_separate: u8 = 5;
def DW_DS_unsigned: u8 = 1;
def DW_END_big: u8 = 1;
def DW_END_default: u8 = 0;
def DW_END_hi_user: u8 = 255;
def DW_END_little: u8 = 2;
def DW_END_lo_user: u8 = 64;
def DW_FORM_addr: u32 = 1;
def DW_FORM_addrx: u32 = 27;
def DW_FORM_addrx1: u32 = 41;
def DW_FORM_addrx2: u32 = 42;
def DW_FORM_addrx3: u32 = 43;
def DW_FORM_addrx4: u32 = 44;
def DW_FORM_block: u32 = 9;
def DW_FORM_block1: u32 = 10;
def DW_FORM_block4: u32 = 4;
def DW_FORM_data1: u32 = 11;
def DW_FORM_data16: u32 = 30;
def DW_FORM_data2: u32 = 5;
def DW_FORM_data4: u32 = 6;
def DW_FORM_data8: u32 = 7;
def DW_FORM_exprloc: u32 = 24;
def DW_FORM_flag: u32 = 12;
def DW_FORM_flag_present: u32 = 25;
def DW_FORM_implicit_const: u32 = 33;
def DW_FORM_indirect: u32 = 22;
def DW_FORM_line_strp: u32 = 31;
def DW_FORM_loclistx: u32 = 34;
def DW_FORM_ref1: u32 = 17;
def DW_FORM_ref2: u32 = 18;
def DW_FORM_ref4: u32 = 19;
def DW_FORM_ref8: u32 = 20;
def DW_FORM_ref_addr: u32 = 16;
def DW_FORM_ref_sig8: u32 = 32;
def DW_FORM_ref_sup4: u32 = 28;
def DW_FORM_ref_sup8: u32 = 36;
def DW_FORM_ref_udata: u32 = 21;
def DW_FORM_rnglistx: u32 = 35;
def DW_FORM_sdata: u32 = 13;
def DW_FORM_sec_offset: u32 = 23;
def DW_FORM_string: u32 = 8;
def DW_FORM_strp: u32 = 14;
def DW_FORM_strp_sup: u32 = 29;
def DW_FORM_strx: u32 = 26;
def DW_FORM_strx1: u32 = 37;
def DW_FORM_strx2: u32 = 38;
def DW_FORM_strx3: u32 = 39;
def DW_FORM_strx4: u32 = 40;
def DW_FORM_udata: u32 = 15;
def DW_IDX_compile_unit: u16 = 1;
def DW_IDX_die_offset: u16 = 3;
def DW_IDX_hi_user: u16 = 16383;
def DW_IDX_lo_user: u16 = 8192;
def DW_IDX_parent: u16 = 4;
def DW_IDX_type_hash: u16 = 5;
def DW_IDX_type_unit: u16 = 2;
def DW_ID_case_insensitive: u8 = 3;
def DW_ID_case_sensitive: u8 = 0;
def DW_ID_down_case: u8 = 2;
def DW_ID_up_case: u8 = 1;
def DW_INL_declared_inlined: u8 = 3;
def DW_INL_declared_not_inlined: u8 = 2;
def DW_INL_inlined: u8 = 1;
def DW_INL_not_inlined: u8 = 0;
def DW_LANG_Ada83: u16 = 3;
def DW_LANG_Ada95: u16 = 13;
def DW_LANG_BLISS: u16 = 37;
def DW_LANG_C: u16 = 2;
def DW_LANG_C89: u16 = 1;
def DW_LANG_C99: u16 = 12;
def DW_LANG_C_plus_plus: u16 = 4;
def DW_LANG_C_plus_plus_03: u16 = 25;
def DW_LANG_C_plus_plus_11: u16 = 26;
def DW_LANG_C_plus_plus_14: u16 = 33;
def DW_LANG_Cobol74: u16 = 5;
def DW_LANG_Cobol85: u16 = 6;
def DW_LANG_D: u16 = 19;
def DW_LANG_Dylan: u16 = 32;
def DW_LANG_Fortran03: u16 = 34;
def DW_LANG_Fortran08: u16 = 35;
def DW_LANG_Fortran77: u16 = 7;
def DW_LANG_Fortran90: u16 = 8;
def DW_LANG_Fortran95: u16 = 14;
def DW_LANG_Go: u16 = 22;
def DW_LANG_Haskell: u16 = 24;
def DW_LANG_Java: u16 = 11;
def DW_LANG_Julia: u16 = 31;
def DW_LANG_Modula2: u16 = 10;
def DW_LANG_Modula3: u16 = 23;
def DW_LANG_OCaml: u16 = 27;
def DW_LANG_ObjC: u16 = 16;
def DW_LANG_ObjC_plus_plus: u16 = 17;
def DW_LANG_OpenCL: u16 = 21;
def DW_LANG_PLI: u16 = 15;
def DW_LANG_Pascal83: u16 = 9;
def DW_LANG_Python: u16 = 20;
def DW_LANG_RenderScript: u16 = 36;
def DW_LANG_Rust: u16 = 28;
def DW_LANG_Swift: u16 = 30;
def DW_LANG_UPC: u16 = 18;
def DW_LANG_c11: u16 = 29;
def DW_LANG_hi_user: u16 = 65535;
def DW_LANG_lo_user: u16 = 32768;
def DW_LLE_base_address: u8 = 6;
def DW_LLE_base_addressx: u8 = 1;
def DW_LLE_default_location: u8 = 5;
def DW_LLE_end_of_list: u8 = 0;
def DW_LLE_offset_pair: u8 = 4;
def DW_LLE_start_end: u8 = 7;
def DW_LLE_start_length: u8 = 8;
def DW_LLE_startx_endx: u8 = 2;
def DW_LLE_startx_length: u8 = 3;
def DW_LNCT_MD5: u16 = 5;
def DW_LNCT_directory_index: u16 = 2;
def DW_LNCT_hi_user: u16 = 1023;
def DW_LNCT_lo_user: u16 = 8192;
def DW_LNCT_path: u16 = 1;
def DW_LNCT_size: u16 = 4;
def DW_LNCT_timestamp: u16 = 3;
def DW_LNE_define_file: u8 = 3;
def DW_LNE_end_sequence: u8 = 1;
def DW_LNE_hi_user: u8 = 255;
def DW_LNE_lo_user: u8 = 128;
def DW_LNE_set_address: u8 = 2;
def DW_LNE_set_discriminator: u8 = 4;
def DW_LNS_advance_line: u8 = 3;
def DW_LNS_advance_pc: u8 = 2;
def DW_LNS_const_add_pc: u8 = 8;
def DW_LNS_copy: u8 = 1;
def DW_LNS_fixed_advance_pc: u8 = 9;
def DW_LNS_isa: u8 = 12;
def DW_LNS_negate_stmt: u8 = 6;
def DW_LNS_set_basic_block: u8 = 7;
def DW_LNS_set_column: u8 = 5;
def DW_LNS_set_epilogue_begin: u8 = 11;
def DW_LNS_set_file: u8 = 4;
def DW_LNS_set_prologue_end: u8 = 10;
def DW_MACRO_define: u8 = 1;
def DW_MACRO_define_strp: u8 = 5;
def DW_MACRO_define_strx: u8 = 11;
def DW_MACRO_define_sup: u8 = 8;
def DW_MACRO_end_file: u8 = 4;
def DW_MACRO_hi_user: u8 = 255;
def DW_MACRO_import: u8 = 7;
def DW_MACRO_import_sup: u8 = 10;
def DW_MACRO_lo_user: u8 = 224;
def DW_MACRO_start_file: u8 = 3;
def DW_MACRO_undef: u8 = 2;
def DW_MACRO_undef_strp: u8 = 6;
def DW_MACRO_undef_strx: u8 = 12;
def DW_MACRO_undef_sup: u8 = 9;
def DW_OP_abs: u8 = 25;
def DW_OP_addrx: u8 = 161;
def DW_OP_and: u8 = 26;
def DW_OP_bit_piece: u8 = 157;
def DW_OP_bra: u8 = 40;
def DW_OP_breg0: u8 = 112;
def DW_OP_breg1: u8 = 113;
def DW_OP_breg10: u8 = 122;
def DW_OP_breg11: u8 = 123;
def DW_OP_breg12: u8 = 124;
def DW_OP_breg13: u8 = 125;
def DW_OP_breg14: u8 = 126;
def DW_OP_breg15: u8 = 127;
def DW_OP_breg16: u8 = 128;
def DW_OP_breg17: u8 = 129;
def DW_OP_breg18: u8 = 130;
def DW_OP_breg19: u8 = 131;
def DW_OP_breg2: u8 = 114;
def DW_OP_breg20: u8 = 132;
def DW_OP_breg21: u8 = 133;
def DW_OP_breg22: u8 = 134;
def DW_OP_breg23: u8 = 135;
def DW_OP_breg24: u8 = 136;
def DW_OP_breg25: u8 = 137;
def DW_OP_breg26: u8 = 138;
def DW_OP_breg27: u8 = 139;
def DW_OP_breg28: u8 = 140;
def DW_OP_breg29: u8 = 141;
def DW_OP_breg3: u8 = 115;
def DW_OP_breg30: u8 = 142;
def DW_OP_breg31: u8 = 143;
def DW_OP_breg4: u8 = 116;
def DW_OP_breg5: u8 = 117;
def DW_OP_breg6: u8 = 118;
def DW_OP_breg7: u8 = 119;
def DW_OP_breg8: u8 = 120;
def DW_OP_breg9: u8 = 121;
def DW_OP_bregx: u8 = 146;
def DW_OP_call2: u8 = 152;
def DW_OP_call4: u8 = 153;
def DW_OP_call_frame_cfa: u8 = 156;
def DW_OP_call_ref: u8 = 154;
def DW_OP_const1s: u8 = 9;
def DW_OP_const2s: u8 = 11;
def DW_OP_const2u: u8 = 10;
def DW_OP_const4s: u8 = 13;
def DW_OP_const4u: u8 = 12;
def DW_OP_const8s: u8 = 15;
def DW_OP_const8u: u8 = 14;
def DW_OP_const_type: u8 = 164;
def DW_OP_consts: u8 = 17;
def DW_OP_constu: u8 = 16;
def DW_OP_constx: u8 = 162;
def DW_OP_convert: u8 = 168;
def DW_OP_deref_type: u8 = 166;
def DW_OP_div: u8 = 27;
def DW_OP_dref_size: u8 = 148;
def DW_OP_drop: u8 = 19;
def DW_OP_dup: u8 = 18;
def DW_OP_entry_value: u8 = 163;
def DW_OP_eq: u8 = 41;
def DW_OP_fbreg: u8 = 145;
def DW_OP_form_tls_address: u8 = 155;
def DW_OP_ge: u8 = 42;
def DW_OP_gt: u8 = 43;
def DW_OP_hi_user: u8 = 255;
def DW_OP_implicit_pointer: u8 = 160;
def DW_OP_implicit_value: u8 = 158;
def DW_OP_le: u8 = 44;
def DW_OP_lit0: u8 = 48;
def DW_OP_lit1: u8 = 49;
def DW_OP_lit10: u8 = 58;
def DW_OP_lit11: u8 = 59;
def DW_OP_lit12: u8 = 60;
def DW_OP_lit13: u8 = 61;
def DW_OP_lit14: u8 = 62;
def DW_OP_lit15: u8 = 63;
def DW_OP_lit16: u8 = 64;
def DW_OP_lit17: u8 = 65;
def DW_OP_lit18: u8 = 66;
def DW_OP_lit19: u8 = 67;
def DW_OP_lit2: u8 = 50;
def DW_OP_lit20: u8 = 68;
def DW_OP_lit21: u8 = 69;
def DW_OP_lit22: u8 = 70;
def DW_OP_lit23: u8 = 71;
def DW_OP_lit24: u8 = 72;
def DW_OP_lit25: u8 = 73;
def DW_OP_lit26: u8 = 74;
def DW_OP_lit27: u8 = 75;
def DW_OP_lit28: u8 = 76;
def DW_OP_lit29: u8 = 77;
def DW_OP_lit3: u8 = 51;
def DW_OP_lit30: u8 = 78;
def DW_OP_lit31: u8 = 79;
def DW_OP_lit4: u8 = 52;
def DW_OP_lit5: u8 = 53;
def DW_OP_lit6: u8 = 54;
def DW_OP_lit7: u8 = 55;
def DW_OP_lit8: u8 = 56;
def DW_OP_lit9: u8 = 57;
def DW_OP_lo_user: u8 = 224;
def DW_OP_lt: u8 = 45;
def DW_OP_minus: u8 = 28;
def DW_OP_mod: u8 = 29;
def DW_OP_mul: u8 = 30;
def DW_OP_ne: u8 = 46;
def DW_OP_neg: u8 = 31;
def DW_OP_nop: u8 = 150;
def DW_OP_not: u8 = 32;
def DW_OP_or: u8 = 33;
def DW_OP_over: u8 = 20;
def DW_OP_pick: u8 = 21;
def DW_OP_piece: u8 = 147;
def DW_OP_plus: u8 = 34;
def DW_OP_plus_uconst: u8 = 35;
def DW_OP_push_object_address: u8 = 151;
def DW_OP_reg0: u8 = 80;
def DW_OP_reg1: u8 = 81;
def DW_OP_reg10: u8 = 90;
def DW_OP_reg11: u8 = 91;
def DW_OP_reg12: u8 = 92;
def DW_OP_reg13: u8 = 93;
def DW_OP_reg14: u8 = 94;
def DW_OP_reg15: u8 = 95;
def DW_OP_reg16: u8 = 96;
def DW_OP_reg17: u8 = 97;
def DW_OP_reg18: u8 = 98;
def DW_OP_reg19: u8 = 99;
def DW_OP_reg2: u8 = 82;
def DW_OP_reg20: u8 = 100;
def DW_OP_reg21: u8 = 101;
def DW_OP_reg22: u8 = 102;
def DW_OP_reg23: u8 = 103;
def DW_OP_reg24: u8 = 104;
def DW_OP_reg25: u8 = 105;
def DW_OP_reg26: u8 = 106;
def DW_OP_reg27: u8 = 107;
def DW_OP_reg28: u8 = 108;
def DW_OP_reg29: u8 = 109;
def DW_OP_reg3: u8 = 83;
def DW_OP_reg30: u8 = 110;
def DW_OP_reg31: u8 = 111;
def DW_OP_reg4: u8 = 84;
def DW_OP_reg5: u8 = 85;
def DW_OP_reg6: u8 = 86;
def DW_OP_reg7: u8 = 87;
def DW_OP_reg8: u8 = 88;
def DW_OP_reg9: u8 = 89;
def DW_OP_regval_type: u8 = 165;
def DW_OP_regx: u8 = 144;
def DW_OP_reinterpret: u8 = 169;
def DW_OP_rot: u8 = 23;
def DW_OP_shl: u8 = 36;
def DW_OP_shr: u8 = 37;
def DW_OP_shra: u8 = 38;
def DW_OP_skip: u8 = 47;
def DW_OP_stack_value: u8 = 159;
def DW_OP_swap: u8 = 22;
def DW_OP_xdref: u8 = 24;
def DW_OP_xdref_size: u8 = 149;
def DW_OP_xdref_type: u8 = 167;
def DW_OP_xor: u8 = 39;
def DW_ORD_col_major: u8 = 1;
def DW_ORD_row_major: u8 = 0;
def DW_RLE_base_address: u8 = 5;
def DW_RLE_base_addressx: u8 = 1;
def DW_RLE_end_of_list: u8 = 0;
def DW_RLE_offset_pair: u8 = 4;
def DW_RLE_start_end: u8 = 6;
def DW_RLE_start_length: u8 = 7;
def DW_RLE_startx_endx: u8 = 2;
def DW_RLE_startx_length: u8 = 3;
def DW_TAG_access_declaration: u32 = 35;
def DW_TAG_array_type: u32 = 1;
def DW_TAG_atomic_type: u32 = 71;
def DW_TAG_base_type: u32 = 36;
def DW_TAG_call_site: u32 = 72;
def DW_TAG_call_site_parameter: u32 = 73;
def DW_TAG_catch_block: u32 = 37;
def DW_TAG_class_type: u32 = 2;
def DW_TAG_coarray_type: u32 = 68;
def DW_TAG_common_block: u32 = 26;
def DW_TAG_common_inclusion: u32 = 27;
def DW_TAG_compile_unit: u32 = 17;
def DW_TAG_const_type: u32 = 38;
def DW_TAG_constant: u32 = 39;
def DW_TAG_dwarf_procedure: u32 = 54;
def DW_TAG_dynamic_type: u32 = 70;
def DW_TAG_entry_point: u32 = 3;
def DW_TAG_enumeration_type: u32 = 4;
def DW_TAG_enumerator: u32 = 40;
def DW_TAG_file_type: u32 = 41;
def DW_TAG_formal_parameter: u32 = 5;
def DW_TAG_friend: u32 = 42;
def DW_TAG_generic_subrange: u32 = 69;
def DW_TAG_hi_user: u32 = 65535;
def DW_TAG_immutable_type: u32 = 75;
def DW_TAG_imported_module: u32 = 58;
def DW_TAG_imported_unit: u32 = 61;
def DW_TAG_inheritance: u32 = 28;
def DW_TAG_inlined_subroutine: u32 = 29;
def DW_TAG_interface_type: u32 = 56;
def DW_TAG_lexical_block: u32 = 11;
def DW_TAG_lo_user: u32 = 16512;
def DW_TAG_module: u32 = 30;
def DW_TAG_namelist: u32 = 43;
def DW_TAG_namelist_item: u32 = 44;
def DW_TAG_namespace: u32 = 57;
def DW_TAG_packed_type: u32 = 45;
def DW_TAG_partial_unit: u32 = 60;
def DW_TAG_ptr_to_member_type: u32 = 31;
def DW_TAG_reference_type: u32 = 16;
def DW_TAG_restrict_type: u32 = 55;
def DW_TAG_rvalue_reference_type: u32 = 66;
def DW_TAG_set_type: u32 = 32;
def DW_TAG_shared_type: u32 = 64;
def DW_TAG_skeleton_unit: u32 = 74;
def DW_TAG_string_type: u32 = 18;
def DW_TAG_structure_type: u32 = 19;
def DW_TAG_subprogram: u32 = 46;
def DW_TAG_subrange_type: u32 = 33;
def DW_TAG_template_alias: u32 = 67;
def DW_TAG_template_type_parameter: u32 = 47;
def DW_TAG_template_value_parameter: u32 = 48;
def DW_TAG_thrown_type: u32 = 49;
def DW_TAG_try_block: u32 = 50;
def DW_TAG_type_unit: u32 = 65;
def DW_TAG_typedef: u32 = 22;
def DW_TAG_union_type: u32 = 23;
def DW_TAG_unspecified_paramters: u32 = 24;
def DW_TAG_unspecified_type: u32 = 59;
def DW_TAG_variable: u32 = 52;
def DW_TAG_variant: u32 = 25;
def DW_TAG_variant_part: u32 = 51;
def DW_TAG_volatile_type: u32 = 53;
def DW_TAG_with_stmt: u32 = 34;
def DW_VIRTUALITY_none: u8 = 0;
def DW_VIRTUALITY_pure_virtual: u8 = 2;
def DW_VIRTUALITY_virtual: u8 = 1;
def DW_VIS_exported: u8 = 2;
def DW_VIS_local: u8 = 1;
def DW_VIS_qualified: u8 = 3;
Functions
fn abbrev_table_finish(table: *abbrev_table) void;
fn addr_to_line(image: *image::image, addr: uintptr) ((const str, uint, uint) | void | io::error);
fn arange_lookup(image: *image::image, addr: uintptr) (u64 | void | errors::invalid);
fn debug_info_finish(di: *debug_info_reader) void;
fn debug_info_next(di: *debug_info_reader) (entry | io::EOF);
fn entry_finish(ent: *entry) void;
fn exec_line_program(image: *image::image, offs: u64) (line_program | void | io::error);
fn get_abbrev(table: *abbrev_table, code: u64) const nullable *abbrev;
fn get_strp(table: *string_table, offs: u64) const str;
fn line_next(prog: *line_program) (line_state | io::EOF | io::error);
fn line_program_finish(prog: *line_program) void;
fn line_step(prog: *line_program) (line_state | void | io::EOF | io::error);
fn load_abbrevs(image: *image::image, offs: u64) (abbrev_table | void | errors::invalid);
fn load_strings(image: *image::image) (string_table | void | io::error);
fn read_debug_info(image: *image::image, offs: u64) (debug_info_reader | void | io::error);
Types
type abbrev
type abbrev = struct {
code: u64,
tag: u32,
has_children: bool,
fields: []afield,
};
A single abbreviated tag from a .debug_abbrev section.
type afield
type afield = struct {
attr: u32,
form: u32,
};
A field in a .debug_abbrev section
type entry
type entry = struct {
tag: u32,
children: bool,
fields: []field,
};
A debug entry.
type field
type field = struct {
attr: u32,
form: u32,
union {
address: uintptr,
block: []u8,
constant: u64,
string: const str,
flag: bool,
reference: u64,
exprloc: []u8,
ptr: u64,
},
};
A debug entry field.
type line_file
type line_file = struct {
name: str,
dir: u64,
mtime: u64,
length: u64,
};
A file with associated line numbers.
type line_flag
type line_flag = enum uint {
NONE = 0,
IS_STMT = 1 << 0,
BASIC_BLOCK = 1 << 1,
END_SEQUENCE = 1 << 2,
PROLOGUE_END = 1 << 3,
EPILOGUE_BEGIN = 1 << 4,
};
Boolean flags for the line number state machine
type line_header = struct {
min_instr_length: u8,
max_ops_per_instr: u8,
default_isstmt: bool,
line_base: i8,
line_range: u8,
opcode_base: u8,
opcode_lengths: []u8,
dirs: []str,
files: []line_file,
};
Header information for a .debug_line program.
type line_program
type line_program = struct {
mem: *memio::stream,
rd: *table_reader,
state: line_state,
head: line_header,
};
Line number program
type line_state
type line_state = struct {
vm_loc: u64,
addr: uintptr,
op_index: uint,
file: uint,
line: uint,
column: uint,
flags: line_flag,
isa: uint,
discriminator: uint,
};
Line number program state
type abbrev_table
Show undocumented member
type abbrev_table = struct {
items: []abbrev,
};
type debug_info_reader
Show undocumented member
type debug_info_reader = struct {
image: *image::image,
abbrev: abbrev_table,
strings: (string_table | void),
mem: *memio::stream,
rd: *table_reader,
};
type string_table
Show undocumented member
type string_table = struct {
data: []u8,
};
type table_reader
Show undocumented member
type table_reader = struct {
src: *memio::stream,
orig_length: size,
length: size,
is64: bool,
};
Constants
def DW_AT_abstract_origin
def DW_AT_abstract_origin: u32 = 49;
0x30: reserved
def DW_AT_bit_size
def DW_AT_bit_size: u32 = 13;
0x0c: reserved
def DW_AT_bit_stride
def DW_AT_bit_stride: u32 = 46;
0x2d: reserved
def DW_AT_byte_size
def DW_AT_byte_size: u32 = 11;
0x0a: reserved
def DW_AT_discr
def DW_AT_discr: u32 = 21;
0x14: reserved
def DW_AT_dwo_name
def DW_AT_dwo_name: u32 = 118;
0x75: reserved
def DW_AT_inline
def DW_AT_inline: u32 = 32;
0x1f: reserved
def DW_AT_namelist_item
def DW_AT_namelist_item: u32 = 68;
0x43: reserved
def DW_AT_ordering
def DW_AT_ordering: u32 = 9;
0x04-0x08: reserved
def DW_AT_producer
def DW_AT_producer: u32 = 37;
0x23, 0x24: reserved
def DW_AT_prototyped
def DW_AT_prototyped: u32 = 39;
0x26: reserved
def DW_AT_return_addr
def DW_AT_return_addr: u32 = 42;
0x28, 0x29: reserved
def DW_AT_start_scope
def DW_AT_start_scope: u32 = 44;
0x2b: reserved
def DW_AT_stmt_list
def DW_AT_stmt_list: u32 = 16;
0x0e, 0x0f: reserved
def DW_CFA_nop
def DW_CFA_nop: u8 = 0;
The following instructions are omitted: DW_CFA_advance_loc DW_CFA_offset DW_CFA_restore
def DW_FORM_block2: u32 = 3;
0x02: reserved
def DW_OP_addr
def DW_OP_addr: u8 = 3;
0x01, 0x02: reserved
def DW_OP_const1u
def DW_OP_const1u: u8 = 8;
0x07: reserved
def DW_OP_deref
def DW_OP_deref: u8 = 6;
0x04, 0x05: reserved
def DW_TAG_condition
def DW_TAG_condition: u32 = 63;
0x3e: reserved
def DW_TAG_imported_declaration
def DW_TAG_imported_declaration: u32 = 138;
0x06, 0x07: reserved
def DW_TAG_label
def DW_TAG_label: u32 = 10;
0x09: reserved
def DW_TAG_member
def DW_TAG_member: u32 = 13;
0x0c: reserved
def DW_TAG_pointer_type
def DW_TAG_pointer_type: u32 = 15;
0x0e: reserved
def DW_TAG_subroutine_type
def DW_TAG_subroutine_type: u32 = 21;
0x14: reserved
def DW_ACCESS_private
Show undocumented member
def DW_ACCESS_private: u8 = 3;
def DW_ACCESS_protected
Show undocumented member
def DW_ACCESS_protected: u8 = 2;
def DW_ACCESS_public
Show undocumented member
def DW_ACCESS_public: u8 = 1;
def DW_ADDR_none
Show undocumented member
def DW_ADDR_none: uint = 0;
def DW_ATE_ASCII
Show undocumented member
def DW_ATE_ASCII: u8 = 18;
def DW_ATE_UCS
Show undocumented member
def DW_ATE_UCS: u8 = 17;
def DW_ATE_UTF
Show undocumented member
def DW_ATE_UTF: u8 = 16;
def DW_ATE_address
Show undocumented member
def DW_ATE_address: u8 = 1;
def DW_ATE_boolean
Show undocumented member
def DW_ATE_boolean: u8 = 2;
def DW_ATE_complex_float
Show undocumented member
def DW_ATE_complex_float: u8 = 3;
def DW_ATE_decimal_float
Show undocumented member
def DW_ATE_decimal_float: u8 = 15;
def DW_ATE_edited
Show undocumented member
def DW_ATE_edited: u8 = 12;
def DW_ATE_float
Show undocumented member
def DW_ATE_float: u8 = 4;
def DW_ATE_hi_user
Show undocumented member
def DW_ATE_hi_user: u8 = 255;
def DW_ATE_imaginary_float
Show undocumented member
def DW_ATE_imaginary_float: u8 = 9;
def DW_ATE_lo_user
Show undocumented member
def DW_ATE_lo_user: u8 = 128;
def DW_ATE_numeric_string
Show undocumented member
def DW_ATE_numeric_string: u8 = 11;
def DW_ATE_packed_decimal
Show undocumented member
def DW_ATE_packed_decimal: u8 = 10;
def DW_ATE_signed
Show undocumented member
def DW_ATE_signed: u8 = 5;
def DW_ATE_signed_char
Show undocumented member
def DW_ATE_signed_char: u8 = 6;
def DW_ATE_signed_fixed
Show undocumented member
def DW_ATE_signed_fixed: u8 = 13;
def DW_ATE_unsigned
Show undocumented member
def DW_ATE_unsigned: u8 = 7;
def DW_ATE_unsigned_char
Show undocumented member
def DW_ATE_unsigned_char: u8 = 8;
def DW_ATE_unsigned_fixed
Show undocumented member
def DW_ATE_unsigned_fixed: u8 = 14;
def DW_AT_accessibility
Show undocumented member
def DW_AT_accessibility: u32 = 50;
def DW_AT_addr_base
Show undocumented member
def DW_AT_addr_base: u32 = 115;
def DW_AT_address_class
Show undocumented member
def DW_AT_address_class: u32 = 51;
def DW_AT_alignment
Show undocumented member
def DW_AT_alignment: u32 = 136;
def DW_AT_allocated
Show undocumented member
def DW_AT_allocated: u32 = 78;
def DW_AT_artificial
Show undocumented member
def DW_AT_artificial: u32 = 52;
def DW_AT_associated
Show undocumented member
def DW_AT_associated: u32 = 79;
def DW_AT_base_types
Show undocumented member
def DW_AT_base_types: u32 = 53;
def DW_AT_binary_scale
Show undocumented member
def DW_AT_binary_scale: u32 = 91;
def DW_AT_byte_stride
Show undocumented member
def DW_AT_byte_stride: u32 = 81;
def DW_AT_call_all_calls
Show undocumented member
def DW_AT_call_all_calls: u32 = 122;
def DW_AT_call_all_source_calls
Show undocumented member
def DW_AT_call_all_source_calls: u32 = 123;
def DW_AT_call_all_tail_calls
Show undocumented member
def DW_AT_call_all_tail_calls: u32 = 124;
def DW_AT_call_column
Show undocumented member
def DW_AT_call_column: u32 = 87;
def DW_AT_call_data_location
Show undocumented member
def DW_AT_call_data_location: u32 = 133;
def DW_AT_call_data_value
Show undocumented member
def DW_AT_call_data_value: u32 = 134;
def DW_AT_call_file
Show undocumented member
def DW_AT_call_file: u32 = 88;
def DW_AT_call_line
Show undocumented member
def DW_AT_call_line: u32 = 89;
def DW_AT_call_origin
Show undocumented member
def DW_AT_call_origin: u32 = 127;
def DW_AT_call_parameter
Show undocumented member
def DW_AT_call_parameter: u32 = 128;
def DW_AT_call_pc
Show undocumented member
def DW_AT_call_pc: u32 = 129;
def DW_AT_call_return_pc
Show undocumented member
def DW_AT_call_return_pc: u32 = 125;
def DW_AT_call_tail_call
Show undocumented member
def DW_AT_call_tail_call: u32 = 130;
def DW_AT_call_target
Show undocumented member
def DW_AT_call_target: u32 = 131;
def DW_AT_call_target_clobbered
Show undocumented member
def DW_AT_call_target_clobbered: u32 = 132;
def DW_AT_call_value
Show undocumented member
def DW_AT_call_value: u32 = 126;
def DW_AT_calling_convention
Show undocumented member
def DW_AT_calling_convention: u32 = 54;
def DW_AT_common_reference
Show undocumented member
def DW_AT_common_reference: u32 = 26;
def DW_AT_comp_dir
Show undocumented member
def DW_AT_comp_dir: u32 = 27;
def DW_AT_const_expr
Show undocumented member
def DW_AT_const_expr: u32 = 108;
def DW_AT_const_value
Show undocumented member
def DW_AT_const_value: u32 = 28;
def DW_AT_containing_type
Show undocumented member
def DW_AT_containing_type: u32 = 29;
def DW_AT_count
Show undocumented member
def DW_AT_count: u32 = 55;
def DW_AT_data_bit_offset
Show undocumented member
def DW_AT_data_bit_offset: u32 = 107;
def DW_AT_data_location
Show undocumented member
def DW_AT_data_location: u32 = 80;
def DW_AT_data_member_location
Show undocumented member
def DW_AT_data_member_location: u32 = 56;
def DW_AT_decimal_scale
Show undocumented member
def DW_AT_decimal_scale: u32 = 92;
def DW_AT_decimal_sign
Show undocumented member
def DW_AT_decimal_sign: u32 = 94;
def DW_AT_decl_column
Show undocumented member
def DW_AT_decl_column: u32 = 57;
def DW_AT_decl_file
Show undocumented member
def DW_AT_decl_file: u32 = 58;
def DW_AT_decl_line
Show undocumented member
def DW_AT_decl_line: u32 = 59;
def DW_AT_declaration
Show undocumented member
def DW_AT_declaration: u32 = 60;
def DW_AT_default_value
Show undocumented member
def DW_AT_default_value: u32 = 30;
def DW_AT_defaulted
Show undocumented member
def DW_AT_defaulted: u32 = 139;
def DW_AT_deleted
Show undocumented member
def DW_AT_deleted: u32 = 138;
def DW_AT_description
Show undocumented member
def DW_AT_description: u32 = 90;
def DW_AT_digit_count
Show undocumented member
def DW_AT_digit_count: u32 = 95;
def DW_AT_discr_list
Show undocumented member
def DW_AT_discr_list: u32 = 61;
def DW_AT_discr_value
Show undocumented member
def DW_AT_discr_value: u32 = 22;
def DW_AT_elemental
Show undocumented member
def DW_AT_elemental: u32 = 102;
def DW_AT_encoding
Show undocumented member
def DW_AT_encoding: u32 = 62;
def DW_AT_endianity
Show undocumented member
def DW_AT_endianity: u32 = 101;
def DW_AT_entry_pc
Show undocumented member
def DW_AT_entry_pc: u32 = 82;
def DW_AT_enum_class
Show undocumented member
def DW_AT_enum_class: u32 = 109;
def DW_AT_explicit
Show undocumented member
def DW_AT_explicit: u32 = 99;
def DW_AT_export_symbols
Show undocumented member
def DW_AT_export_symbols: u32 = 137;
def DW_AT_extension
Show undocumented member
def DW_AT_extension: u32 = 84;
def DW_AT_external
Show undocumented member
def DW_AT_external: u32 = 63;
def DW_AT_frame_base
Show undocumented member
def DW_AT_frame_base: u32 = 64;
def DW_AT_friend
Show undocumented member
def DW_AT_friend: u32 = 65;
def DW_AT_hi_user
Show undocumented member
def DW_AT_hi_user: u32 = 16383;
def DW_AT_high_pc
Show undocumented member
def DW_AT_high_pc: u32 = 18;
def DW_AT_identifier_case
Show undocumented member
def DW_AT_identifier_case: u32 = 66;
def DW_AT_import
Show undocumented member
def DW_AT_import: u32 = 24;
def DW_AT_is_lower_bound
Show undocumented member
def DW_AT_is_lower_bound: u32 = 34;
def DW_AT_is_optional
Show undocumented member
def DW_AT_is_optional: u32 = 33;
def DW_AT_language
Show undocumented member
def DW_AT_language: u32 = 19;
def DW_AT_linkage_name
Show undocumented member
def DW_AT_linkage_name: u32 = 110;
def DW_AT_lo_user
Show undocumented member
def DW_AT_lo_user: u32 = 8192;
def DW_AT_location
Show undocumented member
def DW_AT_location: u32 = 2;
def DW_AT_loclists_base
Show undocumented member
def DW_AT_loclists_base: u32 = 140;
def DW_AT_low_pc
Show undocumented member
def DW_AT_low_pc: u32 = 17;
def DW_AT_macros
Show undocumented member
def DW_AT_macros: u32 = 121;
def DW_AT_main_subprogram
Show undocumented member
def DW_AT_main_subprogram: u32 = 106;
def DW_AT_mutable
Show undocumented member
def DW_AT_mutable: u32 = 97;
def DW_AT_name
Show undocumented member
def DW_AT_name: u32 = 3;
def DW_AT_noreturn
Show undocumented member
def DW_AT_noreturn: u32 = 135;
def DW_AT_object_pointer
Show undocumented member
def DW_AT_object_pointer: u32 = 100;
def DW_AT_picture_string
Show undocumented member
def DW_AT_picture_string: u32 = 96;
def DW_AT_priority
Show undocumented member
def DW_AT_priority: u32 = 69;
def DW_AT_pure
Show undocumented member
def DW_AT_pure: u32 = 103;
def DW_AT_ranges
Show undocumented member
def DW_AT_ranges: u32 = 85;
def DW_AT_rank
Show undocumented member
def DW_AT_rank: u32 = 113;
def DW_AT_recursive
Show undocumented member
def DW_AT_recursive: u32 = 104;
def DW_AT_reference
Show undocumented member
def DW_AT_reference: u32 = 119;
def DW_AT_rnglists_base
Show undocumented member
def DW_AT_rnglists_base: u32 = 116;
def DW_AT_rvalue_reference
Show undocumented member
def DW_AT_rvalue_reference: u32 = 120;
def DW_AT_segment
Show undocumented member
def DW_AT_segment: u32 = 70;
def DW_AT_sibling
Show undocumented member
def DW_AT_sibling: u32 = 1;
def DW_AT_signature
Show undocumented member
def DW_AT_signature: u32 = 105;
def DW_AT_small
Show undocumented member
def DW_AT_small: u32 = 93;
def DW_AT_specification
Show undocumented member
def DW_AT_specification: u32 = 71;
def DW_AT_static_link
Show undocumented member
def DW_AT_static_link: u32 = 72;
def DW_AT_str_offsets_base
Show undocumented member
def DW_AT_str_offsets_base: u32 = 114;
def DW_AT_string_length
Show undocumented member
def DW_AT_string_length: u32 = 25;
def DW_AT_string_length_bit_size
Show undocumented member
def DW_AT_string_length_bit_size: u32 = 111;
def DW_AT_string_length_byte_size
Show undocumented member
def DW_AT_string_length_byte_size: u32 = 112;
def DW_AT_threads_scaled
Show undocumented member
def DW_AT_threads_scaled: u32 = 98;
def DW_AT_trampoline
Show undocumented member
def DW_AT_trampoline: u32 = 86;
def DW_AT_type
Show undocumented member
def DW_AT_type: u32 = 73;
def DW_AT_upper_bound
Show undocumented member
def DW_AT_upper_bound: u32 = 47;
def DW_AT_use_UTF8
Show undocumented member
def DW_AT_use_UTF8: u32 = 83;
def DW_AT_use_location
Show undocumented member
def DW_AT_use_location: u32 = 74;
def DW_AT_variable_parameter
Show undocumented member
def DW_AT_variable_parameter: u32 = 75;
def DW_AT_virtuality
Show undocumented member
def DW_AT_virtuality: u32 = 76;
def DW_AT_visibility
Show undocumented member
def DW_AT_visibility: u32 = 23;
def DW_AT_vtable_elem_location
Show undocumented member
def DW_AT_vtable_elem_location: u32 = 77;
def DW_CC_hi_user
Show undocumented member
def DW_CC_hi_user: u8 = 255;
def DW_CC_lo_user
Show undocumented member
def DW_CC_lo_user: u8 = 64;
def DW_CC_nocall
Show undocumented member
def DW_CC_nocall: u8 = 3;
def DW_CC_normal
Show undocumented member
def DW_CC_normal: u8 = 1;
def DW_CC_pass_by_reference
Show undocumented member
def DW_CC_pass_by_reference: u8 = 4;
def DW_CC_pass_by_value
Show undocumented member
def DW_CC_pass_by_value: u8 = 5;
def DW_CC_program
Show undocumented member
def DW_CC_program: u8 = 2;
def DW_CFA_advance_loc1
Show undocumented member
def DW_CFA_advance_loc1: u8 = 2;
def DW_CFA_advance_loc2
Show undocumented member
def DW_CFA_advance_loc2: u8 = 3;
def DW_CFA_advance_loc3
Show undocumented member
def DW_CFA_advance_loc3: u8 = 4;
def DW_CFA_def_cfa
Show undocumented member
def DW_CFA_def_cfa: u8 = 12;
def DW_CFA_def_cfa_expression
Show undocumented member
def DW_CFA_def_cfa_expression: u8 = 15;
def DW_CFA_def_cfa_offset
Show undocumented member
def DW_CFA_def_cfa_offset: u8 = 14;
def DW_CFA_def_cfa_offset_sf
Show undocumented member
def DW_CFA_def_cfa_offset_sf: u8 = 19;
def DW_CFA_def_cfa_register
Show undocumented member
def DW_CFA_def_cfa_register: u8 = 13;
def DW_CFA_def_cfa_sf
Show undocumented member
def DW_CFA_def_cfa_sf: u8 = 18;
def DW_CFA_expression
Show undocumented member
def DW_CFA_expression: u8 = 16;
def DW_CFA_hi_user
Show undocumented member
def DW_CFA_hi_user: u8 = 63;
def DW_CFA_lo_user
Show undocumented member
def DW_CFA_lo_user: u8 = 28;
def DW_CFA_offset_extended
Show undocumented member
def DW_CFA_offset_extended: u8 = 5;
def DW_CFA_offset_extended_sf
Show undocumented member
def DW_CFA_offset_extended_sf: u8 = 17;
def DW_CFA_register
Show undocumented member
def DW_CFA_register: u8 = 9;
def DW_CFA_remember_state
Show undocumented member
def DW_CFA_remember_state: u8 = 10;
def DW_CFA_restore_extended
Show undocumented member
def DW_CFA_restore_extended: u8 = 6;
def DW_CFA_restore_state
Show undocumented member
def DW_CFA_restore_state: u8 = 11;
def DW_CFA_same_value
Show undocumented member
def DW_CFA_same_value: u8 = 8;
def DW_CFA_set_loc
Show undocumented member
def DW_CFA_set_loc: u8 = 1;
def DW_CFA_undefined
Show undocumented member
def DW_CFA_undefined: u8 = 7;
def DW_CFA_val_expression
Show undocumented member
def DW_CFA_val_expression: u8 = 22;
def DW_CFA_val_offset
Show undocumented member
def DW_CFA_val_offset: u8 = 20;
def DW_CFA_val_offset_sf
Show undocumented member
def DW_CFA_val_offset_sf: u8 = 21;
def DW_CHILDREN_no
Show undocumented member
def DW_CHILDREN_no: uint = 0;
def DW_CHILDREN_yes
Show undocumented member
def DW_CHILDREN_yes: uint = 1;
def DW_DEFAULTED_in_class
Show undocumented member
def DW_DEFAULTED_in_class: u8 = 1;
def DW_DEFAULTED_no
Show undocumented member
def DW_DEFAULTED_no: u8 = 0;
def DW_DEFAULTED_out_of_class
Show undocumented member
def DW_DEFAULTED_out_of_class: u8 = 2;
def DW_DSC_label
Show undocumented member
def DW_DSC_label: u8 = 0;
def DW_DSC_range
Show undocumented member
def DW_DSC_range: u8 = 1;
def DW_DS_leading_overpunch
Show undocumented member
def DW_DS_leading_overpunch: u8 = 2;
def DW_DS_leading_separate
Show undocumented member
def DW_DS_leading_separate: u8 = 4;
def DW_DS_trailing_overpunch
Show undocumented member
def DW_DS_trailing_overpunch: u8 = 3;
def DW_DS_trailing_separate
Show undocumented member
def DW_DS_trailing_separate: u8 = 5;
def DW_DS_unsigned
Show undocumented member
def DW_DS_unsigned: u8 = 1;
def DW_END_big
Show undocumented member
def DW_END_big: u8 = 1;
def DW_END_default
Show undocumented member
def DW_END_default: u8 = 0;
def DW_END_hi_user
Show undocumented member
def DW_END_hi_user: u8 = 255;
def DW_END_little
Show undocumented member
def DW_END_little: u8 = 2;
def DW_END_lo_user
Show undocumented member
def DW_END_lo_user: u8 = 64;
Show undocumented member
def DW_FORM_addr: u32 = 1;
Show undocumented member
def DW_FORM_addrx: u32 = 27;
Show undocumented member
def DW_FORM_addrx1: u32 = 41;
Show undocumented member
def DW_FORM_addrx2: u32 = 42;
Show undocumented member
def DW_FORM_addrx3: u32 = 43;
Show undocumented member
def DW_FORM_addrx4: u32 = 44;
Show undocumented member
def DW_FORM_block: u32 = 9;
Show undocumented member
def DW_FORM_block1: u32 = 10;
Show undocumented member
def DW_FORM_block4: u32 = 4;
Show undocumented member
def DW_FORM_data1: u32 = 11;
Show undocumented member
def DW_FORM_data16: u32 = 30;
Show undocumented member
def DW_FORM_data2: u32 = 5;
Show undocumented member
def DW_FORM_data4: u32 = 6;
Show undocumented member
def DW_FORM_data8: u32 = 7;
Show undocumented member
def DW_FORM_exprloc: u32 = 24;
Show undocumented member
def DW_FORM_flag: u32 = 12;
Show undocumented member
def DW_FORM_flag_present: u32 = 25;
Show undocumented member
def DW_FORM_implicit_const: u32 = 33;
Show undocumented member
def DW_FORM_indirect: u32 = 22;
Show undocumented member
def DW_FORM_line_strp: u32 = 31;
Show undocumented member
def DW_FORM_loclistx: u32 = 34;
Show undocumented member
def DW_FORM_ref1: u32 = 17;
Show undocumented member
def DW_FORM_ref2: u32 = 18;
Show undocumented member
def DW_FORM_ref4: u32 = 19;
Show undocumented member
def DW_FORM_ref8: u32 = 20;
Show undocumented member
def DW_FORM_ref_addr: u32 = 16;
Show undocumented member
def DW_FORM_ref_sig8: u32 = 32;
Show undocumented member
def DW_FORM_ref_sup4: u32 = 28;
Show undocumented member
def DW_FORM_ref_sup8: u32 = 36;
Show undocumented member
def DW_FORM_ref_udata: u32 = 21;
Show undocumented member
def DW_FORM_rnglistx: u32 = 35;
Show undocumented member
def DW_FORM_sdata: u32 = 13;
Show undocumented member
def DW_FORM_sec_offset: u32 = 23;
Show undocumented member
def DW_FORM_string: u32 = 8;
Show undocumented member
def DW_FORM_strp: u32 = 14;
Show undocumented member
def DW_FORM_strp_sup: u32 = 29;
Show undocumented member
def DW_FORM_strx: u32 = 26;
Show undocumented member
def DW_FORM_strx1: u32 = 37;
Show undocumented member
def DW_FORM_strx2: u32 = 38;
Show undocumented member
def DW_FORM_strx3: u32 = 39;
Show undocumented member
def DW_FORM_strx4: u32 = 40;
Show undocumented member
def DW_FORM_udata: u32 = 15;
def DW_IDX_compile_unit
Show undocumented member
def DW_IDX_compile_unit: u16 = 1;
def DW_IDX_die_offset
Show undocumented member
def DW_IDX_die_offset: u16 = 3;
def DW_IDX_hi_user
Show undocumented member
def DW_IDX_hi_user: u16 = 16383;
def DW_IDX_lo_user
Show undocumented member
def DW_IDX_lo_user: u16 = 8192;
def DW_IDX_parent
Show undocumented member
def DW_IDX_parent: u16 = 4;
def DW_IDX_type_hash
Show undocumented member
def DW_IDX_type_hash: u16 = 5;
def DW_IDX_type_unit
Show undocumented member
def DW_IDX_type_unit: u16 = 2;
def DW_ID_case_insensitive
Show undocumented member
def DW_ID_case_insensitive: u8 = 3;
def DW_ID_case_sensitive
Show undocumented member
def DW_ID_case_sensitive: u8 = 0;
def DW_ID_down_case
Show undocumented member
def DW_ID_down_case: u8 = 2;
def DW_ID_up_case
Show undocumented member
def DW_ID_up_case: u8 = 1;
def DW_INL_declared_inlined
Show undocumented member
def DW_INL_declared_inlined: u8 = 3;
def DW_INL_declared_not_inlined
Show undocumented member
def DW_INL_declared_not_inlined: u8 = 2;
def DW_INL_inlined
Show undocumented member
def DW_INL_inlined: u8 = 1;
def DW_INL_not_inlined
Show undocumented member
def DW_INL_not_inlined: u8 = 0;
def DW_LANG_Ada83
Show undocumented member
def DW_LANG_Ada83: u16 = 3;
def DW_LANG_Ada95
Show undocumented member
def DW_LANG_Ada95: u16 = 13;
def DW_LANG_BLISS
Show undocumented member
def DW_LANG_BLISS: u16 = 37;
def DW_LANG_C
Show undocumented member
def DW_LANG_C: u16 = 2;
def DW_LANG_C89
Show undocumented member
def DW_LANG_C89: u16 = 1;
def DW_LANG_C99
Show undocumented member
def DW_LANG_C99: u16 = 12;
def DW_LANG_C_plus_plus
Show undocumented member
def DW_LANG_C_plus_plus: u16 = 4;
def DW_LANG_C_plus_plus_03
Show undocumented member
def DW_LANG_C_plus_plus_03: u16 = 25;
def DW_LANG_C_plus_plus_11
Show undocumented member
def DW_LANG_C_plus_plus_11: u16 = 26;
def DW_LANG_C_plus_plus_14
Show undocumented member
def DW_LANG_C_plus_plus_14: u16 = 33;
def DW_LANG_Cobol74
Show undocumented member
def DW_LANG_Cobol74: u16 = 5;
def DW_LANG_Cobol85
Show undocumented member
def DW_LANG_Cobol85: u16 = 6;
def DW_LANG_D
Show undocumented member
def DW_LANG_D: u16 = 19;
def DW_LANG_Dylan
Show undocumented member
def DW_LANG_Dylan: u16 = 32;
def DW_LANG_Fortran03
Show undocumented member
def DW_LANG_Fortran03: u16 = 34;
def DW_LANG_Fortran08
Show undocumented member
def DW_LANG_Fortran08: u16 = 35;
def DW_LANG_Fortran77
Show undocumented member
def DW_LANG_Fortran77: u16 = 7;
def DW_LANG_Fortran90
Show undocumented member
def DW_LANG_Fortran90: u16 = 8;
def DW_LANG_Fortran95
Show undocumented member
def DW_LANG_Fortran95: u16 = 14;
def DW_LANG_Go
Show undocumented member
def DW_LANG_Go: u16 = 22;
def DW_LANG_Haskell
Show undocumented member
def DW_LANG_Haskell: u16 = 24;
def DW_LANG_Java
Show undocumented member
def DW_LANG_Java: u16 = 11;
def DW_LANG_Julia
Show undocumented member
def DW_LANG_Julia: u16 = 31;
def DW_LANG_Modula2
Show undocumented member
def DW_LANG_Modula2: u16 = 10;
def DW_LANG_Modula3
Show undocumented member
def DW_LANG_Modula3: u16 = 23;
def DW_LANG_OCaml
Show undocumented member
def DW_LANG_OCaml: u16 = 27;
def DW_LANG_ObjC
Show undocumented member
def DW_LANG_ObjC: u16 = 16;
def DW_LANG_ObjC_plus_plus
Show undocumented member
def DW_LANG_ObjC_plus_plus: u16 = 17;
def DW_LANG_OpenCL
Show undocumented member
def DW_LANG_OpenCL: u16 = 21;
def DW_LANG_PLI
Show undocumented member
def DW_LANG_PLI: u16 = 15;
def DW_LANG_Pascal83
Show undocumented member
def DW_LANG_Pascal83: u16 = 9;
def DW_LANG_Python
Show undocumented member
def DW_LANG_Python: u16 = 20;
def DW_LANG_RenderScript
Show undocumented member
def DW_LANG_RenderScript: u16 = 36;
def DW_LANG_Rust
Show undocumented member
def DW_LANG_Rust: u16 = 28;
def DW_LANG_Swift
Show undocumented member
def DW_LANG_Swift: u16 = 30;
def DW_LANG_UPC
Show undocumented member
def DW_LANG_UPC: u16 = 18;
def DW_LANG_c11
Show undocumented member
def DW_LANG_c11: u16 = 29;
def DW_LANG_hi_user
Show undocumented member
def DW_LANG_hi_user: u16 = 65535;
def DW_LANG_lo_user
Show undocumented member
def DW_LANG_lo_user: u16 = 32768;
def DW_LLE_base_address
Show undocumented member
def DW_LLE_base_address: u8 = 6;
def DW_LLE_base_addressx
Show undocumented member
def DW_LLE_base_addressx: u8 = 1;
def DW_LLE_default_location
Show undocumented member
def DW_LLE_default_location: u8 = 5;
def DW_LLE_end_of_list
Show undocumented member
def DW_LLE_end_of_list: u8 = 0;
def DW_LLE_offset_pair
Show undocumented member
def DW_LLE_offset_pair: u8 = 4;
def DW_LLE_start_end
Show undocumented member
def DW_LLE_start_end: u8 = 7;
def DW_LLE_start_length
Show undocumented member
def DW_LLE_start_length: u8 = 8;
def DW_LLE_startx_endx
Show undocumented member
def DW_LLE_startx_endx: u8 = 2;
def DW_LLE_startx_length
Show undocumented member
def DW_LLE_startx_length: u8 = 3;
def DW_LNCT_MD5
Show undocumented member
def DW_LNCT_MD5: u16 = 5;
def DW_LNCT_directory_index
Show undocumented member
def DW_LNCT_directory_index: u16 = 2;
def DW_LNCT_hi_user
Show undocumented member
def DW_LNCT_hi_user: u16 = 1023;
def DW_LNCT_lo_user
Show undocumented member
def DW_LNCT_lo_user: u16 = 8192;
def DW_LNCT_path
Show undocumented member
def DW_LNCT_path: u16 = 1;
def DW_LNCT_size
Show undocumented member
def DW_LNCT_size: u16 = 4;
def DW_LNCT_timestamp
Show undocumented member
def DW_LNCT_timestamp: u16 = 3;
def DW_LNE_define_file
Show undocumented member
def DW_LNE_define_file: u8 = 3;
def DW_LNE_end_sequence
Show undocumented member
def DW_LNE_end_sequence: u8 = 1;
def DW_LNE_hi_user
Show undocumented member
def DW_LNE_hi_user: u8 = 255;
def DW_LNE_lo_user
Show undocumented member
def DW_LNE_lo_user: u8 = 128;
def DW_LNE_set_address
Show undocumented member
def DW_LNE_set_address: u8 = 2;
def DW_LNE_set_discriminator
Show undocumented member
def DW_LNE_set_discriminator: u8 = 4;
def DW_LNS_advance_line
Show undocumented member
def DW_LNS_advance_line: u8 = 3;
def DW_LNS_advance_pc
Show undocumented member
def DW_LNS_advance_pc: u8 = 2;
def DW_LNS_const_add_pc
Show undocumented member
def DW_LNS_const_add_pc: u8 = 8;
def DW_LNS_copy
Show undocumented member
def DW_LNS_copy: u8 = 1;
def DW_LNS_fixed_advance_pc
Show undocumented member
def DW_LNS_fixed_advance_pc: u8 = 9;
def DW_LNS_isa
Show undocumented member
def DW_LNS_isa: u8 = 12;
def DW_LNS_negate_stmt
Show undocumented member
def DW_LNS_negate_stmt: u8 = 6;
def DW_LNS_set_basic_block
Show undocumented member
def DW_LNS_set_basic_block: u8 = 7;
def DW_LNS_set_column
Show undocumented member
def DW_LNS_set_column: u8 = 5;
def DW_LNS_set_epilogue_begin
Show undocumented member
def DW_LNS_set_epilogue_begin: u8 = 11;
def DW_LNS_set_file
Show undocumented member
def DW_LNS_set_file: u8 = 4;
def DW_LNS_set_prologue_end
Show undocumented member
def DW_LNS_set_prologue_end: u8 = 10;
def DW_MACRO_define
Show undocumented member
def DW_MACRO_define: u8 = 1;
def DW_MACRO_define_strp
Show undocumented member
def DW_MACRO_define_strp: u8 = 5;
def DW_MACRO_define_strx
Show undocumented member
def DW_MACRO_define_strx: u8 = 11;
def DW_MACRO_define_sup
Show undocumented member
def DW_MACRO_define_sup: u8 = 8;
def DW_MACRO_end_file
Show undocumented member
def DW_MACRO_end_file: u8 = 4;
def DW_MACRO_hi_user
Show undocumented member
def DW_MACRO_hi_user: u8 = 255;
def DW_MACRO_import
Show undocumented member
def DW_MACRO_import: u8 = 7;
def DW_MACRO_import_sup
Show undocumented member
def DW_MACRO_import_sup: u8 = 10;
def DW_MACRO_lo_user
Show undocumented member
def DW_MACRO_lo_user: u8 = 224;
def DW_MACRO_start_file
Show undocumented member
def DW_MACRO_start_file: u8 = 3;
def DW_MACRO_undef
Show undocumented member
def DW_MACRO_undef: u8 = 2;
def DW_MACRO_undef_strp
Show undocumented member
def DW_MACRO_undef_strp: u8 = 6;
def DW_MACRO_undef_strx
Show undocumented member
def DW_MACRO_undef_strx: u8 = 12;
def DW_MACRO_undef_sup
Show undocumented member
def DW_MACRO_undef_sup: u8 = 9;
def DW_OP_abs
Show undocumented member
def DW_OP_abs: u8 = 25;
def DW_OP_addrx
Show undocumented member
def DW_OP_addrx: u8 = 161;
def DW_OP_and
Show undocumented member
def DW_OP_and: u8 = 26;
def DW_OP_bit_piece
Show undocumented member
def DW_OP_bit_piece: u8 = 157;
def DW_OP_bra
Show undocumented member
def DW_OP_bra: u8 = 40;
def DW_OP_breg0
Show undocumented member
def DW_OP_breg0: u8 = 112;
def DW_OP_breg1
Show undocumented member
def DW_OP_breg1: u8 = 113;
def DW_OP_breg10
Show undocumented member
def DW_OP_breg10: u8 = 122;
def DW_OP_breg11
Show undocumented member
def DW_OP_breg11: u8 = 123;
def DW_OP_breg12
Show undocumented member
def DW_OP_breg12: u8 = 124;
def DW_OP_breg13
Show undocumented member
def DW_OP_breg13: u8 = 125;
def DW_OP_breg14
Show undocumented member
def DW_OP_breg14: u8 = 126;
def DW_OP_breg15
Show undocumented member
def DW_OP_breg15: u8 = 127;
def DW_OP_breg16
Show undocumented member
def DW_OP_breg16: u8 = 128;
def DW_OP_breg17
Show undocumented member
def DW_OP_breg17: u8 = 129;
def DW_OP_breg18
Show undocumented member
def DW_OP_breg18: u8 = 130;
def DW_OP_breg19
Show undocumented member
def DW_OP_breg19: u8 = 131;
def DW_OP_breg2
Show undocumented member
def DW_OP_breg2: u8 = 114;
def DW_OP_breg20
Show undocumented member
def DW_OP_breg20: u8 = 132;
def DW_OP_breg21
Show undocumented member
def DW_OP_breg21: u8 = 133;
def DW_OP_breg22
Show undocumented member
def DW_OP_breg22: u8 = 134;
def DW_OP_breg23
Show undocumented member
def DW_OP_breg23: u8 = 135;
def DW_OP_breg24
Show undocumented member
def DW_OP_breg24: u8 = 136;
def DW_OP_breg25
Show undocumented member
def DW_OP_breg25: u8 = 137;
def DW_OP_breg26
Show undocumented member
def DW_OP_breg26: u8 = 138;
def DW_OP_breg27
Show undocumented member
def DW_OP_breg27: u8 = 139;
def DW_OP_breg28
Show undocumented member
def DW_OP_breg28: u8 = 140;
def DW_OP_breg29
Show undocumented member
def DW_OP_breg29: u8 = 141;
def DW_OP_breg3
Show undocumented member
def DW_OP_breg3: u8 = 115;
def DW_OP_breg30
Show undocumented member
def DW_OP_breg30: u8 = 142;
def DW_OP_breg31
Show undocumented member
def DW_OP_breg31: u8 = 143;
def DW_OP_breg4
Show undocumented member
def DW_OP_breg4: u8 = 116;
def DW_OP_breg5
Show undocumented member
def DW_OP_breg5: u8 = 117;
def DW_OP_breg6
Show undocumented member
def DW_OP_breg6: u8 = 118;
def DW_OP_breg7
Show undocumented member
def DW_OP_breg7: u8 = 119;
def DW_OP_breg8
Show undocumented member
def DW_OP_breg8: u8 = 120;
def DW_OP_breg9
Show undocumented member
def DW_OP_breg9: u8 = 121;
def DW_OP_bregx
Show undocumented member
def DW_OP_bregx: u8 = 146;
def DW_OP_call2
Show undocumented member
def DW_OP_call2: u8 = 152;
def DW_OP_call4
Show undocumented member
def DW_OP_call4: u8 = 153;
def DW_OP_call_frame_cfa
Show undocumented member
def DW_OP_call_frame_cfa: u8 = 156;
def DW_OP_call_ref
Show undocumented member
def DW_OP_call_ref: u8 = 154;
def DW_OP_const1s
Show undocumented member
def DW_OP_const1s: u8 = 9;
def DW_OP_const2s
Show undocumented member
def DW_OP_const2s: u8 = 11;
def DW_OP_const2u
Show undocumented member
def DW_OP_const2u: u8 = 10;
def DW_OP_const4s
Show undocumented member
def DW_OP_const4s: u8 = 13;
def DW_OP_const4u
Show undocumented member
def DW_OP_const4u: u8 = 12;
def DW_OP_const8s
Show undocumented member
def DW_OP_const8s: u8 = 15;
def DW_OP_const8u
Show undocumented member
def DW_OP_const8u: u8 = 14;
def DW_OP_const_type
Show undocumented member
def DW_OP_const_type: u8 = 164;
def DW_OP_consts
Show undocumented member
def DW_OP_consts: u8 = 17;
def DW_OP_constu
Show undocumented member
def DW_OP_constu: u8 = 16;
def DW_OP_constx
Show undocumented member
def DW_OP_constx: u8 = 162;
def DW_OP_convert
Show undocumented member
def DW_OP_convert: u8 = 168;
def DW_OP_deref_type
Show undocumented member
def DW_OP_deref_type: u8 = 166;
def DW_OP_div
Show undocumented member
def DW_OP_div: u8 = 27;
def DW_OP_dref_size
Show undocumented member
def DW_OP_dref_size: u8 = 148;
def DW_OP_drop
Show undocumented member
def DW_OP_drop: u8 = 19;
def DW_OP_dup
Show undocumented member
def DW_OP_dup: u8 = 18;
def DW_OP_entry_value
Show undocumented member
def DW_OP_entry_value: u8 = 163;
def DW_OP_eq
Show undocumented member
def DW_OP_eq: u8 = 41;
def DW_OP_fbreg
Show undocumented member
def DW_OP_fbreg: u8 = 145;
Show undocumented member
def DW_OP_form_tls_address: u8 = 155;
def DW_OP_ge
Show undocumented member
def DW_OP_ge: u8 = 42;
def DW_OP_gt
Show undocumented member
def DW_OP_gt: u8 = 43;
def DW_OP_hi_user
Show undocumented member
def DW_OP_hi_user: u8 = 255;
def DW_OP_implicit_pointer
Show undocumented member
def DW_OP_implicit_pointer: u8 = 160;
def DW_OP_implicit_value
Show undocumented member
def DW_OP_implicit_value: u8 = 158;
def DW_OP_le
Show undocumented member
def DW_OP_le: u8 = 44;
def DW_OP_lit0
Show undocumented member
def DW_OP_lit0: u8 = 48;
def DW_OP_lit1
Show undocumented member
def DW_OP_lit1: u8 = 49;
def DW_OP_lit10
Show undocumented member
def DW_OP_lit10: u8 = 58;
def DW_OP_lit11
Show undocumented member
def DW_OP_lit11: u8 = 59;
def DW_OP_lit12
Show undocumented member
def DW_OP_lit12: u8 = 60;
def DW_OP_lit13
Show undocumented member
def DW_OP_lit13: u8 = 61;
def DW_OP_lit14
Show undocumented member
def DW_OP_lit14: u8 = 62;
def DW_OP_lit15
Show undocumented member
def DW_OP_lit15: u8 = 63;
def DW_OP_lit16
Show undocumented member
def DW_OP_lit16: u8 = 64;
def DW_OP_lit17
Show undocumented member
def DW_OP_lit17: u8 = 65;
def DW_OP_lit18
Show undocumented member
def DW_OP_lit18: u8 = 66;
def DW_OP_lit19
Show undocumented member
def DW_OP_lit19: u8 = 67;
def DW_OP_lit2
Show undocumented member
def DW_OP_lit2: u8 = 50;
def DW_OP_lit20
Show undocumented member
def DW_OP_lit20: u8 = 68;
def DW_OP_lit21
Show undocumented member
def DW_OP_lit21: u8 = 69;
def DW_OP_lit22
Show undocumented member
def DW_OP_lit22: u8 = 70;
def DW_OP_lit23
Show undocumented member
def DW_OP_lit23: u8 = 71;
def DW_OP_lit24
Show undocumented member
def DW_OP_lit24: u8 = 72;
def DW_OP_lit25
Show undocumented member
def DW_OP_lit25: u8 = 73;
def DW_OP_lit26
Show undocumented member
def DW_OP_lit26: u8 = 74;
def DW_OP_lit27
Show undocumented member
def DW_OP_lit27: u8 = 75;
def DW_OP_lit28
Show undocumented member
def DW_OP_lit28: u8 = 76;
def DW_OP_lit29
Show undocumented member
def DW_OP_lit29: u8 = 77;
def DW_OP_lit3
Show undocumented member
def DW_OP_lit3: u8 = 51;
def DW_OP_lit30
Show undocumented member
def DW_OP_lit30: u8 = 78;
def DW_OP_lit31
Show undocumented member
def DW_OP_lit31: u8 = 79;
def DW_OP_lit4
Show undocumented member
def DW_OP_lit4: u8 = 52;
def DW_OP_lit5
Show undocumented member
def DW_OP_lit5: u8 = 53;
def DW_OP_lit6
Show undocumented member
def DW_OP_lit6: u8 = 54;
def DW_OP_lit7
Show undocumented member
def DW_OP_lit7: u8 = 55;
def DW_OP_lit8
Show undocumented member
def DW_OP_lit8: u8 = 56;
def DW_OP_lit9
Show undocumented member
def DW_OP_lit9: u8 = 57;
def DW_OP_lo_user
Show undocumented member
def DW_OP_lo_user: u8 = 224;
def DW_OP_lt
Show undocumented member
def DW_OP_lt: u8 = 45;
def DW_OP_minus
Show undocumented member
def DW_OP_minus: u8 = 28;
def DW_OP_mod
Show undocumented member
def DW_OP_mod: u8 = 29;
def DW_OP_mul
Show undocumented member
def DW_OP_mul: u8 = 30;
def DW_OP_ne
Show undocumented member
def DW_OP_ne: u8 = 46;
def DW_OP_neg
Show undocumented member
def DW_OP_neg: u8 = 31;
def DW_OP_nop
Show undocumented member
def DW_OP_nop: u8 = 150;
def DW_OP_not
Show undocumented member
def DW_OP_not: u8 = 32;
def DW_OP_or
Show undocumented member
def DW_OP_or: u8 = 33;
def DW_OP_over
Show undocumented member
def DW_OP_over: u8 = 20;
def DW_OP_pick
Show undocumented member
def DW_OP_pick: u8 = 21;
def DW_OP_piece
Show undocumented member
def DW_OP_piece: u8 = 147;
def DW_OP_plus
Show undocumented member
def DW_OP_plus: u8 = 34;
def DW_OP_plus_uconst
Show undocumented member
def DW_OP_plus_uconst: u8 = 35;
def DW_OP_push_object_address
Show undocumented member
def DW_OP_push_object_address: u8 = 151;
def DW_OP_reg0
Show undocumented member
def DW_OP_reg0: u8 = 80;
def DW_OP_reg1
Show undocumented member
def DW_OP_reg1: u8 = 81;
def DW_OP_reg10
Show undocumented member
def DW_OP_reg10: u8 = 90;
def DW_OP_reg11
Show undocumented member
def DW_OP_reg11: u8 = 91;
def DW_OP_reg12
Show undocumented member
def DW_OP_reg12: u8 = 92;
def DW_OP_reg13
Show undocumented member
def DW_OP_reg13: u8 = 93;
def DW_OP_reg14
Show undocumented member
def DW_OP_reg14: u8 = 94;
def DW_OP_reg15
Show undocumented member
def DW_OP_reg15: u8 = 95;
def DW_OP_reg16
Show undocumented member
def DW_OP_reg16: u8 = 96;
def DW_OP_reg17
Show undocumented member
def DW_OP_reg17: u8 = 97;
def DW_OP_reg18
Show undocumented member
def DW_OP_reg18: u8 = 98;
def DW_OP_reg19
Show undocumented member
def DW_OP_reg19: u8 = 99;
def DW_OP_reg2
Show undocumented member
def DW_OP_reg2: u8 = 82;
def DW_OP_reg20
Show undocumented member
def DW_OP_reg20: u8 = 100;
def DW_OP_reg21
Show undocumented member
def DW_OP_reg21: u8 = 101;
def DW_OP_reg22
Show undocumented member
def DW_OP_reg22: u8 = 102;
def DW_OP_reg23
Show undocumented member
def DW_OP_reg23: u8 = 103;
def DW_OP_reg24
Show undocumented member
def DW_OP_reg24: u8 = 104;
def DW_OP_reg25
Show undocumented member
def DW_OP_reg25: u8 = 105;
def DW_OP_reg26
Show undocumented member
def DW_OP_reg26: u8 = 106;
def DW_OP_reg27
Show undocumented member
def DW_OP_reg27: u8 = 107;
def DW_OP_reg28
Show undocumented member
def DW_OP_reg28: u8 = 108;
def DW_OP_reg29
Show undocumented member
def DW_OP_reg29: u8 = 109;
def DW_OP_reg3
Show undocumented member
def DW_OP_reg3: u8 = 83;
def DW_OP_reg30
Show undocumented member
def DW_OP_reg30: u8 = 110;
def DW_OP_reg31
Show undocumented member
def DW_OP_reg31: u8 = 111;
def DW_OP_reg4
Show undocumented member
def DW_OP_reg4: u8 = 84;
def DW_OP_reg5
Show undocumented member
def DW_OP_reg5: u8 = 85;
def DW_OP_reg6
Show undocumented member
def DW_OP_reg6: u8 = 86;
def DW_OP_reg7
Show undocumented member
def DW_OP_reg7: u8 = 87;
def DW_OP_reg8
Show undocumented member
def DW_OP_reg8: u8 = 88;
def DW_OP_reg9
Show undocumented member
def DW_OP_reg9: u8 = 89;
def DW_OP_regval_type
Show undocumented member
def DW_OP_regval_type: u8 = 165;
def DW_OP_regx
Show undocumented member
def DW_OP_regx: u8 = 144;
def DW_OP_reinterpret
Show undocumented member
def DW_OP_reinterpret: u8 = 169;
def DW_OP_rot
Show undocumented member
def DW_OP_rot: u8 = 23;
def DW_OP_shl
Show undocumented member
def DW_OP_shl: u8 = 36;
def DW_OP_shr
Show undocumented member
def DW_OP_shr: u8 = 37;
def DW_OP_shra
Show undocumented member
def DW_OP_shra: u8 = 38;
def DW_OP_skip
Show undocumented member
def DW_OP_skip: u8 = 47;
def DW_OP_stack_value
Show undocumented member
def DW_OP_stack_value: u8 = 159;
def DW_OP_swap
Show undocumented member
def DW_OP_swap: u8 = 22;
def DW_OP_xdref
Show undocumented member
def DW_OP_xdref: u8 = 24;
def DW_OP_xdref_size
Show undocumented member
def DW_OP_xdref_size: u8 = 149;
def DW_OP_xdref_type
Show undocumented member
def DW_OP_xdref_type: u8 = 167;
def DW_OP_xor
Show undocumented member
def DW_OP_xor: u8 = 39;
def DW_ORD_col_major
Show undocumented member
def DW_ORD_col_major: u8 = 1;
def DW_ORD_row_major
Show undocumented member
def DW_ORD_row_major: u8 = 0;
def DW_RLE_base_address
Show undocumented member
def DW_RLE_base_address: u8 = 5;
def DW_RLE_base_addressx
Show undocumented member
def DW_RLE_base_addressx: u8 = 1;
def DW_RLE_end_of_list
Show undocumented member
def DW_RLE_end_of_list: u8 = 0;
def DW_RLE_offset_pair
Show undocumented member
def DW_RLE_offset_pair: u8 = 4;
def DW_RLE_start_end
Show undocumented member
def DW_RLE_start_end: u8 = 6;
def DW_RLE_start_length
Show undocumented member
def DW_RLE_start_length: u8 = 7;
def DW_RLE_startx_endx
Show undocumented member
def DW_RLE_startx_endx: u8 = 2;
def DW_RLE_startx_length
Show undocumented member
def DW_RLE_startx_length: u8 = 3;
def DW_TAG_access_declaration
Show undocumented member
def DW_TAG_access_declaration: u32 = 35;
def DW_TAG_array_type
Show undocumented member
def DW_TAG_array_type: u32 = 1;
def DW_TAG_atomic_type
Show undocumented member
def DW_TAG_atomic_type: u32 = 71;
def DW_TAG_base_type
Show undocumented member
def DW_TAG_base_type: u32 = 36;
def DW_TAG_call_site
Show undocumented member
def DW_TAG_call_site: u32 = 72;
def DW_TAG_call_site_parameter
Show undocumented member
def DW_TAG_call_site_parameter: u32 = 73;
def DW_TAG_catch_block
Show undocumented member
def DW_TAG_catch_block: u32 = 37;
def DW_TAG_class_type
Show undocumented member
def DW_TAG_class_type: u32 = 2;
def DW_TAG_coarray_type
Show undocumented member
def DW_TAG_coarray_type: u32 = 68;
def DW_TAG_common_block
Show undocumented member
def DW_TAG_common_block: u32 = 26;
def DW_TAG_common_inclusion
Show undocumented member
def DW_TAG_common_inclusion: u32 = 27;
def DW_TAG_compile_unit
Show undocumented member
def DW_TAG_compile_unit: u32 = 17;
def DW_TAG_const_type
Show undocumented member
def DW_TAG_const_type: u32 = 38;
def DW_TAG_constant
Show undocumented member
def DW_TAG_constant: u32 = 39;
def DW_TAG_dwarf_procedure
Show undocumented member
def DW_TAG_dwarf_procedure: u32 = 54;
def DW_TAG_dynamic_type
Show undocumented member
def DW_TAG_dynamic_type: u32 = 70;
def DW_TAG_entry_point
Show undocumented member
def DW_TAG_entry_point: u32 = 3;
def DW_TAG_enumeration_type
Show undocumented member
def DW_TAG_enumeration_type: u32 = 4;
def DW_TAG_enumerator
Show undocumented member
def DW_TAG_enumerator: u32 = 40;
def DW_TAG_file_type
Show undocumented member
def DW_TAG_file_type: u32 = 41;
Show undocumented member
def DW_TAG_formal_parameter: u32 = 5;
def DW_TAG_friend
Show undocumented member
def DW_TAG_friend: u32 = 42;
def DW_TAG_generic_subrange
Show undocumented member
def DW_TAG_generic_subrange: u32 = 69;
def DW_TAG_hi_user
Show undocumented member
def DW_TAG_hi_user: u32 = 65535;
def DW_TAG_immutable_type
Show undocumented member
def DW_TAG_immutable_type: u32 = 75;
def DW_TAG_imported_module
Show undocumented member
def DW_TAG_imported_module: u32 = 58;
def DW_TAG_imported_unit
Show undocumented member
def DW_TAG_imported_unit: u32 = 61;
def DW_TAG_inheritance
Show undocumented member
def DW_TAG_inheritance: u32 = 28;
def DW_TAG_inlined_subroutine
Show undocumented member
def DW_TAG_inlined_subroutine: u32 = 29;
def DW_TAG_interface_type
Show undocumented member
def DW_TAG_interface_type: u32 = 56;
def DW_TAG_lexical_block
Show undocumented member
def DW_TAG_lexical_block: u32 = 11;
def DW_TAG_lo_user
Show undocumented member
def DW_TAG_lo_user: u32 = 16512;
def DW_TAG_module
Show undocumented member
def DW_TAG_module: u32 = 30;
def DW_TAG_namelist
Show undocumented member
def DW_TAG_namelist: u32 = 43;
def DW_TAG_namelist_item
Show undocumented member
def DW_TAG_namelist_item: u32 = 44;
def DW_TAG_namespace
Show undocumented member
def DW_TAG_namespace: u32 = 57;
def DW_TAG_packed_type
Show undocumented member
def DW_TAG_packed_type: u32 = 45;
def DW_TAG_partial_unit
Show undocumented member
def DW_TAG_partial_unit: u32 = 60;
def DW_TAG_ptr_to_member_type
Show undocumented member
def DW_TAG_ptr_to_member_type: u32 = 31;
def DW_TAG_reference_type
Show undocumented member
def DW_TAG_reference_type: u32 = 16;
def DW_TAG_restrict_type
Show undocumented member
def DW_TAG_restrict_type: u32 = 55;
def DW_TAG_rvalue_reference_type
Show undocumented member
def DW_TAG_rvalue_reference_type: u32 = 66;
def DW_TAG_set_type
Show undocumented member
def DW_TAG_set_type: u32 = 32;
def DW_TAG_shared_type
Show undocumented member
def DW_TAG_shared_type: u32 = 64;
def DW_TAG_skeleton_unit
Show undocumented member
def DW_TAG_skeleton_unit: u32 = 74;
def DW_TAG_string_type
Show undocumented member
def DW_TAG_string_type: u32 = 18;
def DW_TAG_structure_type
Show undocumented member
def DW_TAG_structure_type: u32 = 19;
def DW_TAG_subprogram
Show undocumented member
def DW_TAG_subprogram: u32 = 46;
def DW_TAG_subrange_type
Show undocumented member
def DW_TAG_subrange_type: u32 = 33;
def DW_TAG_template_alias
Show undocumented member
def DW_TAG_template_alias: u32 = 67;
def DW_TAG_template_type_parameter
Show undocumented member
def DW_TAG_template_type_parameter: u32 = 47;
def DW_TAG_template_value_parameter
Show undocumented member
def DW_TAG_template_value_parameter: u32 = 48;
def DW_TAG_thrown_type
Show undocumented member
def DW_TAG_thrown_type: u32 = 49;
def DW_TAG_try_block
Show undocumented member
def DW_TAG_try_block: u32 = 50;
def DW_TAG_type_unit
Show undocumented member
def DW_TAG_type_unit: u32 = 65;
def DW_TAG_typedef
Show undocumented member
def DW_TAG_typedef: u32 = 22;
def DW_TAG_union_type
Show undocumented member
def DW_TAG_union_type: u32 = 23;
def DW_TAG_unspecified_paramters
Show undocumented member
def DW_TAG_unspecified_paramters: u32 = 24;
def DW_TAG_unspecified_type
Show undocumented member
def DW_TAG_unspecified_type: u32 = 59;
def DW_TAG_variable
Show undocumented member
def DW_TAG_variable: u32 = 52;
def DW_TAG_variant
Show undocumented member
def DW_TAG_variant: u32 = 25;
def DW_TAG_variant_part
Show undocumented member
def DW_TAG_variant_part: u32 = 51;
def DW_TAG_volatile_type
Show undocumented member
def DW_TAG_volatile_type: u32 = 53;
def DW_TAG_with_stmt
Show undocumented member
def DW_TAG_with_stmt: u32 = 34;
def DW_VIRTUALITY_none
Show undocumented member
def DW_VIRTUALITY_none: u8 = 0;
def DW_VIRTUALITY_pure_virtual
Show undocumented member
def DW_VIRTUALITY_pure_virtual: u8 = 2;
def DW_VIRTUALITY_virtual
Show undocumented member
def DW_VIRTUALITY_virtual: u8 = 1;
def DW_VIS_exported
Show undocumented member
def DW_VIS_exported: u8 = 2;
def DW_VIS_local
Show undocumented member
def DW_VIS_local: u8 = 1;
def DW_VIS_qualified
Show undocumented member
def DW_VIS_qualified: u8 = 3;
Functions
fn abbrev_table_finish
fn abbrev_table_finish(table: *abbrev_table) void;
Frees resources associated with an abbrev_table.
fn addr_to_line
fn addr_to_line(image: *image::image, addr: uintptr) ((const str, uint, uint) | void | io::error);
Determines the file path, line number, and column number of a given address in the program image. Returns void if unknown. The return value is statically allocated.
fn arange_lookup
fn arange_lookup(image: *image::image, addr: uintptr) (u64 | void | errors::invalid);
Returns the debug_info offset for the DIE that corresponds to this address, if known, or void if unknown.
fn debug_info_finish
fn debug_info_finish(di: *debug_info_reader) void;
Frees resources associated with a debug_info_reader.
fn debug_info_next
fn debug_info_next(di: *debug_info_reader) (entry | io::EOF);
Returns the next debug info entry (DIE) from a debug_info_reader. Pass the return value to entry_finish when done.
fn entry_finish
fn entry_finish(ent: *entry) void;
Frees resources associated with an entry.
fn exec_line_program
fn exec_line_program(image: *image::image, offs: u64) (line_program | void | io::error);
Initializes a new line number state machine to run the line number program at the specified offset in .debug_line.
Use line_step to step the state machine, and pass the result to line_program_finish to free resources associated with the state machine when done using it.
fn get_abbrev
fn get_abbrev(table: *abbrev_table, code: u64) const nullable *abbrev;
Retrieves an abbreviation from an abbrev_table by its abbreviation code.
fn get_strp
fn get_strp(table: *string_table, offs: u64) const str;
Returns a string from the string table.
fn line_next
fn line_next(prog: *line_program) (line_state | io::EOF | io::error);
Runs the line number state machine until the next COPY instruction.
fn line_program_finish
fn line_program_finish(prog: *line_program) void;
Frees resources associated with a line_program.
fn line_step
fn line_step(prog: *line_program) (line_state | void | io::EOF | io::error);
Step the line number state machine. Returns the current line_state on a copy or end-of-sequence instruction, io::EOF at the end of the file, or void otherwise.
fn load_abbrevs
fn load_abbrevs(image: *image::image, offs: u64) (abbrev_table | void | errors::invalid);
Loads an abbreviation table from the .debug_abbrev section, loading the table at the provided offset from the start of the ELF section.
Pass the result to abbrev_table_finish to free resources associated with the table when you're done with it.
fn load_strings
fn load_strings(image: *image::image) (string_table | void | io::error);
Loads a DWARF string table from .debug_str.
fn read_debug_info
fn read_debug_info(image: *image::image, offs: u64) (debug_info_reader | void | io::error);
Reads the debug info from a DWARF image. Returns a debug_info_reader, call debug_info_next to retrieve the next DIE.
Pass the return value to debug_info_finish after you're done with it.