debug::dwarf+x86_64 +linux

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,
};

// Undocumented types:
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;

// Undocumented constants:
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[link]

type abbrev = struct {
	code: u64,
	tag: u32,
	has_children: bool,
	fields: []afield,
};

A single abbreviated tag from a .debug_abbrev section.

type afield[link]

type afield = struct {
	attr: u32,
	form: u32,
};

A field in a .debug_abbrev section

type entry[link]

type entry = struct {
	tag: u32,
	children: bool,
	fields: []field,
};

A debug entry.

type field[link]

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[link]

type line_file = struct {
	name: str,
	dir: u64,
	mtime: u64,
	length: u64,
};

A file with associated line numbers.

type line_flag[link]

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[link]

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[link]

type line_program = struct {
	mem: *memio::stream,
	rd: *table_reader,
	state: line_state,
	head: line_header,
};

Line number program

type line_state[link]

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[link]

Show undocumented member
type abbrev_table = struct {
	items: []abbrev,
};

type debug_info_reader[link]

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[link]

Show undocumented member
type string_table = struct {
	data: []u8,
};

type table_reader[link]

Show undocumented member
type table_reader = struct {
	src: *memio::stream,
	orig_length: size,
	length: size,
	is64: bool,
};

Constants

def DW_AT_abstract_origin[link]

def DW_AT_abstract_origin: u32 = 49;

0x30: reserved

def DW_AT_bit_size[link]

def DW_AT_bit_size: u32 = 13;

0x0c: reserved

def DW_AT_bit_stride[link]

def DW_AT_bit_stride: u32 = 46;

0x2d: reserved

def DW_AT_byte_size[link]

def DW_AT_byte_size: u32 = 11;

0x0a: reserved

def DW_AT_discr[link]

def DW_AT_discr: u32 = 21;

0x14: reserved

def DW_AT_dwo_name[link]

def DW_AT_dwo_name: u32 = 118;

0x75: reserved

def DW_AT_inline[link]

def DW_AT_inline: u32 = 32;

0x1f: reserved

def DW_AT_namelist_item[link]

def DW_AT_namelist_item: u32 = 68;

0x43: reserved

def DW_AT_ordering[link]

def DW_AT_ordering: u32 = 9;

0x04-0x08: reserved

def DW_AT_producer[link]

def DW_AT_producer: u32 = 37;

0x23, 0x24: reserved

def DW_AT_prototyped[link]

def DW_AT_prototyped: u32 = 39;

0x26: reserved

def DW_AT_return_addr[link]

def DW_AT_return_addr: u32 = 42;

0x28, 0x29: reserved

def DW_AT_start_scope[link]

def DW_AT_start_scope: u32 = 44;

0x2b: reserved

def DW_AT_stmt_list[link]

def DW_AT_stmt_list: u32 = 16;

0x0e, 0x0f: reserved

def DW_CFA_nop[link]

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[link]

def DW_FORM_block2: u32 = 3;

0x02: reserved

def DW_OP_addr[link]

def DW_OP_addr: u8 = 3;

0x01, 0x02: reserved

def DW_OP_const1u[link]

def DW_OP_const1u: u8 = 8;

0x07: reserved

def DW_OP_deref[link]

def DW_OP_deref: u8 = 6;

0x04, 0x05: reserved

def DW_TAG_condition[link]

def DW_TAG_condition: u32 = 63;

0x3e: reserved

def DW_TAG_imported_declaration[link]

def DW_TAG_imported_declaration: u32 = 138;

0x06, 0x07: reserved

def DW_TAG_label[link]

def DW_TAG_label: u32 = 10;

0x09: reserved

def DW_TAG_member[link]

def DW_TAG_member: u32 = 13;

0x0c: reserved

def DW_TAG_pointer_type[link]

def DW_TAG_pointer_type: u32 = 15;

0x0e: reserved

def DW_TAG_subroutine_type[link]

def DW_TAG_subroutine_type: u32 = 21;

0x14: reserved

def DW_ACCESS_private[link]

Show undocumented member
def DW_ACCESS_private: u8 = 3;

def DW_ACCESS_protected[link]

Show undocumented member
def DW_ACCESS_protected: u8 = 2;

def DW_ACCESS_public[link]

Show undocumented member
def DW_ACCESS_public: u8 = 1;

def DW_ADDR_none[link]

Show undocumented member
def DW_ADDR_none: uint = 0;

def DW_ATE_ASCII[link]

Show undocumented member
def DW_ATE_ASCII: u8 = 18;

def DW_ATE_UCS[link]

Show undocumented member
def DW_ATE_UCS: u8 = 17;

def DW_ATE_UTF[link]

Show undocumented member
def DW_ATE_UTF: u8 = 16;

def DW_ATE_address[link]

Show undocumented member
def DW_ATE_address: u8 = 1;

def DW_ATE_boolean[link]

Show undocumented member
def DW_ATE_boolean: u8 = 2;

def DW_ATE_complex_float[link]

Show undocumented member
def DW_ATE_complex_float: u8 = 3;

def DW_ATE_decimal_float[link]

Show undocumented member
def DW_ATE_decimal_float: u8 = 15;

def DW_ATE_edited[link]

Show undocumented member
def DW_ATE_edited: u8 = 12;

def DW_ATE_float[link]

Show undocumented member
def DW_ATE_float: u8 = 4;

def DW_ATE_hi_user[link]

Show undocumented member
def DW_ATE_hi_user: u8 = 255;

def DW_ATE_imaginary_float[link]

Show undocumented member
def DW_ATE_imaginary_float: u8 = 9;

def DW_ATE_lo_user[link]

Show undocumented member
def DW_ATE_lo_user: u8 = 128;

def DW_ATE_numeric_string[link]

Show undocumented member
def DW_ATE_numeric_string: u8 = 11;

def DW_ATE_packed_decimal[link]

Show undocumented member
def DW_ATE_packed_decimal: u8 = 10;

def DW_ATE_signed[link]

Show undocumented member
def DW_ATE_signed: u8 = 5;

def DW_ATE_signed_char[link]

Show undocumented member
def DW_ATE_signed_char: u8 = 6;

def DW_ATE_signed_fixed[link]

Show undocumented member
def DW_ATE_signed_fixed: u8 = 13;

def DW_ATE_unsigned[link]

Show undocumented member
def DW_ATE_unsigned: u8 = 7;

def DW_ATE_unsigned_char[link]

Show undocumented member
def DW_ATE_unsigned_char: u8 = 8;

def DW_ATE_unsigned_fixed[link]

Show undocumented member
def DW_ATE_unsigned_fixed: u8 = 14;

def DW_AT_accessibility[link]

Show undocumented member
def DW_AT_accessibility: u32 = 50;

def DW_AT_addr_base[link]

Show undocumented member
def DW_AT_addr_base: u32 = 115;

def DW_AT_address_class[link]

Show undocumented member
def DW_AT_address_class: u32 = 51;

def DW_AT_alignment[link]

Show undocumented member
def DW_AT_alignment: u32 = 136;

def DW_AT_allocated[link]

Show undocumented member
def DW_AT_allocated: u32 = 78;

def DW_AT_artificial[link]

Show undocumented member
def DW_AT_artificial: u32 = 52;

def DW_AT_associated[link]

Show undocumented member
def DW_AT_associated: u32 = 79;

def DW_AT_base_types[link]

Show undocumented member
def DW_AT_base_types: u32 = 53;

def DW_AT_binary_scale[link]

Show undocumented member
def DW_AT_binary_scale: u32 = 91;

def DW_AT_byte_stride[link]

Show undocumented member
def DW_AT_byte_stride: u32 = 81;

def DW_AT_call_all_calls[link]

Show undocumented member
def DW_AT_call_all_calls: u32 = 122;

def DW_AT_call_all_source_calls[link]

Show undocumented member
def DW_AT_call_all_source_calls: u32 = 123;

def DW_AT_call_all_tail_calls[link]

Show undocumented member
def DW_AT_call_all_tail_calls: u32 = 124;

def DW_AT_call_column[link]

Show undocumented member
def DW_AT_call_column: u32 = 87;

def DW_AT_call_data_location[link]

Show undocumented member
def DW_AT_call_data_location: u32 = 133;

def DW_AT_call_data_value[link]

Show undocumented member
def DW_AT_call_data_value: u32 = 134;

def DW_AT_call_file[link]

Show undocumented member
def DW_AT_call_file: u32 = 88;

def DW_AT_call_line[link]

Show undocumented member
def DW_AT_call_line: u32 = 89;

def DW_AT_call_origin[link]

Show undocumented member
def DW_AT_call_origin: u32 = 127;

def DW_AT_call_parameter[link]

Show undocumented member
def DW_AT_call_parameter: u32 = 128;

def DW_AT_call_pc[link]

Show undocumented member
def DW_AT_call_pc: u32 = 129;

def DW_AT_call_return_pc[link]

Show undocumented member
def DW_AT_call_return_pc: u32 = 125;

def DW_AT_call_tail_call[link]

Show undocumented member
def DW_AT_call_tail_call: u32 = 130;

def DW_AT_call_target[link]

Show undocumented member
def DW_AT_call_target: u32 = 131;

def DW_AT_call_target_clobbered[link]

Show undocumented member
def DW_AT_call_target_clobbered: u32 = 132;

def DW_AT_call_value[link]

Show undocumented member
def DW_AT_call_value: u32 = 126;

def DW_AT_calling_convention[link]

Show undocumented member
def DW_AT_calling_convention: u32 = 54;

def DW_AT_common_reference[link]

Show undocumented member
def DW_AT_common_reference: u32 = 26;

def DW_AT_comp_dir[link]

Show undocumented member
def DW_AT_comp_dir: u32 = 27;

def DW_AT_const_expr[link]

Show undocumented member
def DW_AT_const_expr: u32 = 108;

def DW_AT_const_value[link]

Show undocumented member
def DW_AT_const_value: u32 = 28;

def DW_AT_containing_type[link]

Show undocumented member
def DW_AT_containing_type: u32 = 29;

def DW_AT_count[link]

Show undocumented member
def DW_AT_count: u32 = 55;

def DW_AT_data_bit_offset[link]

Show undocumented member
def DW_AT_data_bit_offset: u32 = 107;

def DW_AT_data_location[link]

Show undocumented member
def DW_AT_data_location: u32 = 80;

def DW_AT_data_member_location[link]

Show undocumented member
def DW_AT_data_member_location: u32 = 56;

def DW_AT_decimal_scale[link]

Show undocumented member
def DW_AT_decimal_scale: u32 = 92;

def DW_AT_decimal_sign[link]

Show undocumented member
def DW_AT_decimal_sign: u32 = 94;

def DW_AT_decl_column[link]

Show undocumented member
def DW_AT_decl_column: u32 = 57;

def DW_AT_decl_file[link]

Show undocumented member
def DW_AT_decl_file: u32 = 58;

def DW_AT_decl_line[link]

Show undocumented member
def DW_AT_decl_line: u32 = 59;

def DW_AT_declaration[link]

Show undocumented member
def DW_AT_declaration: u32 = 60;

def DW_AT_default_value[link]

Show undocumented member
def DW_AT_default_value: u32 = 30;

def DW_AT_defaulted[link]

Show undocumented member
def DW_AT_defaulted: u32 = 139;

def DW_AT_deleted[link]

Show undocumented member
def DW_AT_deleted: u32 = 138;

def DW_AT_description[link]

Show undocumented member
def DW_AT_description: u32 = 90;

def DW_AT_digit_count[link]

Show undocumented member
def DW_AT_digit_count: u32 = 95;

def DW_AT_discr_list[link]

Show undocumented member
def DW_AT_discr_list: u32 = 61;

def DW_AT_discr_value[link]

Show undocumented member
def DW_AT_discr_value: u32 = 22;

def DW_AT_elemental[link]

Show undocumented member
def DW_AT_elemental: u32 = 102;

def DW_AT_encoding[link]

Show undocumented member
def DW_AT_encoding: u32 = 62;

def DW_AT_endianity[link]

Show undocumented member
def DW_AT_endianity: u32 = 101;

def DW_AT_entry_pc[link]

Show undocumented member
def DW_AT_entry_pc: u32 = 82;

def DW_AT_enum_class[link]

Show undocumented member
def DW_AT_enum_class: u32 = 109;

def DW_AT_explicit[link]

Show undocumented member
def DW_AT_explicit: u32 = 99;

def DW_AT_export_symbols[link]

Show undocumented member
def DW_AT_export_symbols: u32 = 137;

def DW_AT_extension[link]

Show undocumented member
def DW_AT_extension: u32 = 84;

def DW_AT_external[link]

Show undocumented member
def DW_AT_external: u32 = 63;

def DW_AT_frame_base[link]

Show undocumented member
def DW_AT_frame_base: u32 = 64;

def DW_AT_friend[link]

Show undocumented member
def DW_AT_friend: u32 = 65;

def DW_AT_hi_user[link]

Show undocumented member
def DW_AT_hi_user: u32 = 16383;

def DW_AT_high_pc[link]

Show undocumented member
def DW_AT_high_pc: u32 = 18;

def DW_AT_identifier_case[link]

Show undocumented member
def DW_AT_identifier_case: u32 = 66;

def DW_AT_import[link]

Show undocumented member
def DW_AT_import: u32 = 24;

def DW_AT_is_lower_bound[link]

Show undocumented member
def DW_AT_is_lower_bound: u32 = 34;

def DW_AT_is_optional[link]

Show undocumented member
def DW_AT_is_optional: u32 = 33;

def DW_AT_language[link]

Show undocumented member
def DW_AT_language: u32 = 19;

def DW_AT_linkage_name[link]

Show undocumented member
def DW_AT_linkage_name: u32 = 110;

def DW_AT_lo_user[link]

Show undocumented member
def DW_AT_lo_user: u32 = 8192;

def DW_AT_location[link]

Show undocumented member
def DW_AT_location: u32 = 2;

def DW_AT_loclists_base[link]

Show undocumented member
def DW_AT_loclists_base: u32 = 140;

def DW_AT_low_pc[link]

Show undocumented member
def DW_AT_low_pc: u32 = 17;

def DW_AT_macros[link]

Show undocumented member
def DW_AT_macros: u32 = 121;

def DW_AT_main_subprogram[link]

Show undocumented member
def DW_AT_main_subprogram: u32 = 106;

def DW_AT_mutable[link]

Show undocumented member
def DW_AT_mutable: u32 = 97;

def DW_AT_name[link]

Show undocumented member
def DW_AT_name: u32 = 3;

def DW_AT_noreturn[link]

Show undocumented member
def DW_AT_noreturn: u32 = 135;

def DW_AT_object_pointer[link]

Show undocumented member
def DW_AT_object_pointer: u32 = 100;

def DW_AT_picture_string[link]

Show undocumented member
def DW_AT_picture_string: u32 = 96;

def DW_AT_priority[link]

Show undocumented member
def DW_AT_priority: u32 = 69;

def DW_AT_pure[link]

Show undocumented member
def DW_AT_pure: u32 = 103;

def DW_AT_ranges[link]

Show undocumented member
def DW_AT_ranges: u32 = 85;

def DW_AT_rank[link]

Show undocumented member
def DW_AT_rank: u32 = 113;

def DW_AT_recursive[link]

Show undocumented member
def DW_AT_recursive: u32 = 104;

def DW_AT_reference[link]

Show undocumented member
def DW_AT_reference: u32 = 119;

def DW_AT_rnglists_base[link]

Show undocumented member
def DW_AT_rnglists_base: u32 = 116;

def DW_AT_rvalue_reference[link]

Show undocumented member
def DW_AT_rvalue_reference: u32 = 120;

def DW_AT_segment[link]

Show undocumented member
def DW_AT_segment: u32 = 70;

def DW_AT_sibling[link]

Show undocumented member
def DW_AT_sibling: u32 = 1;

def DW_AT_signature[link]

Show undocumented member
def DW_AT_signature: u32 = 105;

def DW_AT_small[link]

Show undocumented member
def DW_AT_small: u32 = 93;

def DW_AT_specification[link]

Show undocumented member
def DW_AT_specification: u32 = 71;
Show undocumented member
def DW_AT_static_link: u32 = 72;

def DW_AT_str_offsets_base[link]

Show undocumented member
def DW_AT_str_offsets_base: u32 = 114;

def DW_AT_string_length[link]

Show undocumented member
def DW_AT_string_length: u32 = 25;

def DW_AT_string_length_bit_size[link]

Show undocumented member
def DW_AT_string_length_bit_size: u32 = 111;

def DW_AT_string_length_byte_size[link]

Show undocumented member
def DW_AT_string_length_byte_size: u32 = 112;

def DW_AT_threads_scaled[link]

Show undocumented member
def DW_AT_threads_scaled: u32 = 98;

def DW_AT_trampoline[link]

Show undocumented member
def DW_AT_trampoline: u32 = 86;

def DW_AT_type[link]

Show undocumented member
def DW_AT_type: u32 = 73;

def DW_AT_upper_bound[link]

Show undocumented member
def DW_AT_upper_bound: u32 = 47;

def DW_AT_use_UTF8[link]

Show undocumented member
def DW_AT_use_UTF8: u32 = 83;

def DW_AT_use_location[link]

Show undocumented member
def DW_AT_use_location: u32 = 74;

def DW_AT_variable_parameter[link]

Show undocumented member
def DW_AT_variable_parameter: u32 = 75;

def DW_AT_virtuality[link]

Show undocumented member
def DW_AT_virtuality: u32 = 76;

def DW_AT_visibility[link]

Show undocumented member
def DW_AT_visibility: u32 = 23;

def DW_AT_vtable_elem_location[link]

Show undocumented member
def DW_AT_vtable_elem_location: u32 = 77;

def DW_CC_hi_user[link]

Show undocumented member
def DW_CC_hi_user: u8 = 255;

def DW_CC_lo_user[link]

Show undocumented member
def DW_CC_lo_user: u8 = 64;

def DW_CC_nocall[link]

Show undocumented member
def DW_CC_nocall: u8 = 3;

def DW_CC_normal[link]

Show undocumented member
def DW_CC_normal: u8 = 1;

def DW_CC_pass_by_reference[link]

Show undocumented member
def DW_CC_pass_by_reference: u8 = 4;

def DW_CC_pass_by_value[link]

Show undocumented member
def DW_CC_pass_by_value: u8 = 5;

def DW_CC_program[link]

Show undocumented member
def DW_CC_program: u8 = 2;

def DW_CFA_advance_loc1[link]

Show undocumented member
def DW_CFA_advance_loc1: u8 = 2;

def DW_CFA_advance_loc2[link]

Show undocumented member
def DW_CFA_advance_loc2: u8 = 3;

def DW_CFA_advance_loc3[link]

Show undocumented member
def DW_CFA_advance_loc3: u8 = 4;

def DW_CFA_def_cfa[link]

Show undocumented member
def DW_CFA_def_cfa: u8 = 12;

def DW_CFA_def_cfa_expression[link]

Show undocumented member
def DW_CFA_def_cfa_expression: u8 = 15;

def DW_CFA_def_cfa_offset[link]

Show undocumented member
def DW_CFA_def_cfa_offset: u8 = 14;

def DW_CFA_def_cfa_offset_sf[link]

Show undocumented member
def DW_CFA_def_cfa_offset_sf: u8 = 19;

def DW_CFA_def_cfa_register[link]

Show undocumented member
def DW_CFA_def_cfa_register: u8 = 13;

def DW_CFA_def_cfa_sf[link]

Show undocumented member
def DW_CFA_def_cfa_sf: u8 = 18;

def DW_CFA_expression[link]

Show undocumented member
def DW_CFA_expression: u8 = 16;

def DW_CFA_hi_user[link]

Show undocumented member
def DW_CFA_hi_user: u8 = 63;

def DW_CFA_lo_user[link]

Show undocumented member
def DW_CFA_lo_user: u8 = 28;

def DW_CFA_offset_extended[link]

Show undocumented member
def DW_CFA_offset_extended: u8 = 5;

def DW_CFA_offset_extended_sf[link]

Show undocumented member
def DW_CFA_offset_extended_sf: u8 = 17;

def DW_CFA_register[link]

Show undocumented member
def DW_CFA_register: u8 = 9;

def DW_CFA_remember_state[link]

Show undocumented member
def DW_CFA_remember_state: u8 = 10;

def DW_CFA_restore_extended[link]

Show undocumented member
def DW_CFA_restore_extended: u8 = 6;

def DW_CFA_restore_state[link]

Show undocumented member
def DW_CFA_restore_state: u8 = 11;

def DW_CFA_same_value[link]

Show undocumented member
def DW_CFA_same_value: u8 = 8;

def DW_CFA_set_loc[link]

Show undocumented member
def DW_CFA_set_loc: u8 = 1;

def DW_CFA_undefined[link]

Show undocumented member
def DW_CFA_undefined: u8 = 7;

def DW_CFA_val_expression[link]

Show undocumented member
def DW_CFA_val_expression: u8 = 22;

def DW_CFA_val_offset[link]

Show undocumented member
def DW_CFA_val_offset: u8 = 20;

def DW_CFA_val_offset_sf[link]

Show undocumented member
def DW_CFA_val_offset_sf: u8 = 21;

def DW_CHILDREN_no[link]

Show undocumented member
def DW_CHILDREN_no: uint = 0;

def DW_CHILDREN_yes[link]

Show undocumented member
def DW_CHILDREN_yes: uint = 1;

def DW_DEFAULTED_in_class[link]

Show undocumented member
def DW_DEFAULTED_in_class: u8 = 1;

def DW_DEFAULTED_no[link]

Show undocumented member
def DW_DEFAULTED_no: u8 = 0;

def DW_DEFAULTED_out_of_class[link]

Show undocumented member
def DW_DEFAULTED_out_of_class: u8 = 2;

def DW_DSC_label[link]

Show undocumented member
def DW_DSC_label: u8 = 0;

def DW_DSC_range[link]

Show undocumented member
def DW_DSC_range: u8 = 1;

def DW_DS_leading_overpunch[link]

Show undocumented member
def DW_DS_leading_overpunch: u8 = 2;

def DW_DS_leading_separate[link]

Show undocumented member
def DW_DS_leading_separate: u8 = 4;

def DW_DS_trailing_overpunch[link]

Show undocumented member
def DW_DS_trailing_overpunch: u8 = 3;

def DW_DS_trailing_separate[link]

Show undocumented member
def DW_DS_trailing_separate: u8 = 5;

def DW_DS_unsigned[link]

Show undocumented member
def DW_DS_unsigned: u8 = 1;

def DW_END_big[link]

Show undocumented member
def DW_END_big: u8 = 1;

def DW_END_default[link]

Show undocumented member
def DW_END_default: u8 = 0;

def DW_END_hi_user[link]

Show undocumented member
def DW_END_hi_user: u8 = 255;

def DW_END_little[link]

Show undocumented member
def DW_END_little: u8 = 2;

def DW_END_lo_user[link]

Show undocumented member
def DW_END_lo_user: u8 = 64;

def DW_FORM_addr[link]

Show undocumented member
def DW_FORM_addr: u32 = 1;

def DW_FORM_addrx[link]

Show undocumented member
def DW_FORM_addrx: u32 = 27;

def DW_FORM_addrx1[link]

Show undocumented member
def DW_FORM_addrx1: u32 = 41;

def DW_FORM_addrx2[link]

Show undocumented member
def DW_FORM_addrx2: u32 = 42;

def DW_FORM_addrx3[link]

Show undocumented member
def DW_FORM_addrx3: u32 = 43;

def DW_FORM_addrx4[link]

Show undocumented member
def DW_FORM_addrx4: u32 = 44;

def DW_FORM_block[link]

Show undocumented member
def DW_FORM_block: u32 = 9;

def DW_FORM_block1[link]

Show undocumented member
def DW_FORM_block1: u32 = 10;

def DW_FORM_block4[link]

Show undocumented member
def DW_FORM_block4: u32 = 4;

def DW_FORM_data1[link]

Show undocumented member
def DW_FORM_data1: u32 = 11;

def DW_FORM_data16[link]

Show undocumented member
def DW_FORM_data16: u32 = 30;

def DW_FORM_data2[link]

Show undocumented member
def DW_FORM_data2: u32 = 5;

def DW_FORM_data4[link]

Show undocumented member
def DW_FORM_data4: u32 = 6;

def DW_FORM_data8[link]

Show undocumented member
def DW_FORM_data8: u32 = 7;

def DW_FORM_exprloc[link]

Show undocumented member
def DW_FORM_exprloc: u32 = 24;

def DW_FORM_flag[link]

Show undocumented member
def DW_FORM_flag: u32 = 12;

def DW_FORM_flag_present[link]

Show undocumented member
def DW_FORM_flag_present: u32 = 25;

def DW_FORM_implicit_const[link]

Show undocumented member
def DW_FORM_implicit_const: u32 = 33;

def DW_FORM_indirect[link]

Show undocumented member
def DW_FORM_indirect: u32 = 22;

def DW_FORM_line_strp[link]

Show undocumented member
def DW_FORM_line_strp: u32 = 31;

def DW_FORM_loclistx[link]

Show undocumented member
def DW_FORM_loclistx: u32 = 34;

def DW_FORM_ref1[link]

Show undocumented member
def DW_FORM_ref1: u32 = 17;

def DW_FORM_ref2[link]

Show undocumented member
def DW_FORM_ref2: u32 = 18;

def DW_FORM_ref4[link]

Show undocumented member
def DW_FORM_ref4: u32 = 19;

def DW_FORM_ref8[link]

Show undocumented member
def DW_FORM_ref8: u32 = 20;

def DW_FORM_ref_addr[link]

Show undocumented member
def DW_FORM_ref_addr: u32 = 16;

def DW_FORM_ref_sig8[link]

Show undocumented member
def DW_FORM_ref_sig8: u32 = 32;

def DW_FORM_ref_sup4[link]

Show undocumented member
def DW_FORM_ref_sup4: u32 = 28;

def DW_FORM_ref_sup8[link]

Show undocumented member
def DW_FORM_ref_sup8: u32 = 36;

def DW_FORM_ref_udata[link]

Show undocumented member
def DW_FORM_ref_udata: u32 = 21;

def DW_FORM_rnglistx[link]

Show undocumented member
def DW_FORM_rnglistx: u32 = 35;

def DW_FORM_sdata[link]

Show undocumented member
def DW_FORM_sdata: u32 = 13;

def DW_FORM_sec_offset[link]

Show undocumented member
def DW_FORM_sec_offset: u32 = 23;

def DW_FORM_string[link]

Show undocumented member
def DW_FORM_string: u32 = 8;

def DW_FORM_strp[link]

Show undocumented member
def DW_FORM_strp: u32 = 14;

def DW_FORM_strp_sup[link]

Show undocumented member
def DW_FORM_strp_sup: u32 = 29;

def DW_FORM_strx[link]

Show undocumented member
def DW_FORM_strx: u32 = 26;

def DW_FORM_strx1[link]

Show undocumented member
def DW_FORM_strx1: u32 = 37;

def DW_FORM_strx2[link]

Show undocumented member
def DW_FORM_strx2: u32 = 38;

def DW_FORM_strx3[link]

Show undocumented member
def DW_FORM_strx3: u32 = 39;

def DW_FORM_strx4[link]

Show undocumented member
def DW_FORM_strx4: u32 = 40;

def DW_FORM_udata[link]

Show undocumented member
def DW_FORM_udata: u32 = 15;

def DW_IDX_compile_unit[link]

Show undocumented member
def DW_IDX_compile_unit: u16 = 1;

def DW_IDX_die_offset[link]

Show undocumented member
def DW_IDX_die_offset: u16 = 3;

def DW_IDX_hi_user[link]

Show undocumented member
def DW_IDX_hi_user: u16 = 16383;

def DW_IDX_lo_user[link]

Show undocumented member
def DW_IDX_lo_user: u16 = 8192;

def DW_IDX_parent[link]

Show undocumented member
def DW_IDX_parent: u16 = 4;

def DW_IDX_type_hash[link]

Show undocumented member
def DW_IDX_type_hash: u16 = 5;

def DW_IDX_type_unit[link]

Show undocumented member
def DW_IDX_type_unit: u16 = 2;

def DW_ID_case_insensitive[link]

Show undocumented member
def DW_ID_case_insensitive: u8 = 3;

def DW_ID_case_sensitive[link]

Show undocumented member
def DW_ID_case_sensitive: u8 = 0;

def DW_ID_down_case[link]

Show undocumented member
def DW_ID_down_case: u8 = 2;

def DW_ID_up_case[link]

Show undocumented member
def DW_ID_up_case: u8 = 1;

def DW_INL_declared_inlined[link]

Show undocumented member
def DW_INL_declared_inlined: u8 = 3;

def DW_INL_declared_not_inlined[link]

Show undocumented member
def DW_INL_declared_not_inlined: u8 = 2;

def DW_INL_inlined[link]

Show undocumented member
def DW_INL_inlined: u8 = 1;

def DW_INL_not_inlined[link]

Show undocumented member
def DW_INL_not_inlined: u8 = 0;

def DW_LANG_Ada83[link]

Show undocumented member
def DW_LANG_Ada83: u16 = 3;

def DW_LANG_Ada95[link]

Show undocumented member
def DW_LANG_Ada95: u16 = 13;

def DW_LANG_BLISS[link]

Show undocumented member
def DW_LANG_BLISS: u16 = 37;

def DW_LANG_C[link]

Show undocumented member
def DW_LANG_C: u16 = 2;

def DW_LANG_C89[link]

Show undocumented member
def DW_LANG_C89: u16 = 1;

def DW_LANG_C99[link]

Show undocumented member
def DW_LANG_C99: u16 = 12;

def DW_LANG_C_plus_plus[link]

Show undocumented member
def DW_LANG_C_plus_plus: u16 = 4;

def DW_LANG_C_plus_plus_03[link]

Show undocumented member
def DW_LANG_C_plus_plus_03: u16 = 25;

def DW_LANG_C_plus_plus_11[link]

Show undocumented member
def DW_LANG_C_plus_plus_11: u16 = 26;

def DW_LANG_C_plus_plus_14[link]

Show undocumented member
def DW_LANG_C_plus_plus_14: u16 = 33;

def DW_LANG_Cobol74[link]

Show undocumented member
def DW_LANG_Cobol74: u16 = 5;

def DW_LANG_Cobol85[link]

Show undocumented member
def DW_LANG_Cobol85: u16 = 6;

def DW_LANG_D[link]

Show undocumented member
def DW_LANG_D: u16 = 19;

def DW_LANG_Dylan[link]

Show undocumented member
def DW_LANG_Dylan: u16 = 32;

def DW_LANG_Fortran03[link]

Show undocumented member
def DW_LANG_Fortran03: u16 = 34;

def DW_LANG_Fortran08[link]

Show undocumented member
def DW_LANG_Fortran08: u16 = 35;

def DW_LANG_Fortran77[link]

Show undocumented member
def DW_LANG_Fortran77: u16 = 7;

def DW_LANG_Fortran90[link]

Show undocumented member
def DW_LANG_Fortran90: u16 = 8;

def DW_LANG_Fortran95[link]

Show undocumented member
def DW_LANG_Fortran95: u16 = 14;

def DW_LANG_Go[link]

Show undocumented member
def DW_LANG_Go: u16 = 22;

def DW_LANG_Haskell[link]

Show undocumented member
def DW_LANG_Haskell: u16 = 24;

def DW_LANG_Java[link]

Show undocumented member
def DW_LANG_Java: u16 = 11;

def DW_LANG_Julia[link]

Show undocumented member
def DW_LANG_Julia: u16 = 31;

def DW_LANG_Modula2[link]

Show undocumented member
def DW_LANG_Modula2: u16 = 10;

def DW_LANG_Modula3[link]

Show undocumented member
def DW_LANG_Modula3: u16 = 23;

def DW_LANG_OCaml[link]

Show undocumented member
def DW_LANG_OCaml: u16 = 27;

def DW_LANG_ObjC[link]

Show undocumented member
def DW_LANG_ObjC: u16 = 16;

def DW_LANG_ObjC_plus_plus[link]

Show undocumented member
def DW_LANG_ObjC_plus_plus: u16 = 17;

def DW_LANG_OpenCL[link]

Show undocumented member
def DW_LANG_OpenCL: u16 = 21;

def DW_LANG_PLI[link]

Show undocumented member
def DW_LANG_PLI: u16 = 15;

def DW_LANG_Pascal83[link]

Show undocumented member
def DW_LANG_Pascal83: u16 = 9;

def DW_LANG_Python[link]

Show undocumented member
def DW_LANG_Python: u16 = 20;

def DW_LANG_RenderScript[link]

Show undocumented member
def DW_LANG_RenderScript: u16 = 36;

def DW_LANG_Rust[link]

Show undocumented member
def DW_LANG_Rust: u16 = 28;

def DW_LANG_Swift[link]

Show undocumented member
def DW_LANG_Swift: u16 = 30;

def DW_LANG_UPC[link]

Show undocumented member
def DW_LANG_UPC: u16 = 18;

def DW_LANG_c11[link]

Show undocumented member
def DW_LANG_c11: u16 = 29;

def DW_LANG_hi_user[link]

Show undocumented member
def DW_LANG_hi_user: u16 = 65535;

def DW_LANG_lo_user[link]

Show undocumented member
def DW_LANG_lo_user: u16 = 32768;

def DW_LLE_base_address[link]

Show undocumented member
def DW_LLE_base_address: u8 = 6;

def DW_LLE_base_addressx[link]

Show undocumented member
def DW_LLE_base_addressx: u8 = 1;

def DW_LLE_default_location[link]

Show undocumented member
def DW_LLE_default_location: u8 = 5;

def DW_LLE_end_of_list[link]

Show undocumented member
def DW_LLE_end_of_list: u8 = 0;

def DW_LLE_offset_pair[link]

Show undocumented member
def DW_LLE_offset_pair: u8 = 4;

def DW_LLE_start_end[link]

Show undocumented member
def DW_LLE_start_end: u8 = 7;

def DW_LLE_start_length[link]

Show undocumented member
def DW_LLE_start_length: u8 = 8;

def DW_LLE_startx_endx[link]

Show undocumented member
def DW_LLE_startx_endx: u8 = 2;

def DW_LLE_startx_length[link]

Show undocumented member
def DW_LLE_startx_length: u8 = 3;

def DW_LNCT_MD5[link]

Show undocumented member
def DW_LNCT_MD5: u16 = 5;

def DW_LNCT_directory_index[link]

Show undocumented member
def DW_LNCT_directory_index: u16 = 2;

def DW_LNCT_hi_user[link]

Show undocumented member
def DW_LNCT_hi_user: u16 = 1023;

def DW_LNCT_lo_user[link]

Show undocumented member
def DW_LNCT_lo_user: u16 = 8192;

def DW_LNCT_path[link]

Show undocumented member
def DW_LNCT_path: u16 = 1;

def DW_LNCT_size[link]

Show undocumented member
def DW_LNCT_size: u16 = 4;

def DW_LNCT_timestamp[link]

Show undocumented member
def DW_LNCT_timestamp: u16 = 3;

def DW_LNE_define_file[link]

Show undocumented member
def DW_LNE_define_file: u8 = 3;

def DW_LNE_end_sequence[link]

Show undocumented member
def DW_LNE_end_sequence: u8 = 1;

def DW_LNE_hi_user[link]

Show undocumented member
def DW_LNE_hi_user: u8 = 255;

def DW_LNE_lo_user[link]

Show undocumented member
def DW_LNE_lo_user: u8 = 128;

def DW_LNE_set_address[link]

Show undocumented member
def DW_LNE_set_address: u8 = 2;

def DW_LNE_set_discriminator[link]

Show undocumented member
def DW_LNE_set_discriminator: u8 = 4;

def DW_LNS_advance_line[link]

Show undocumented member
def DW_LNS_advance_line: u8 = 3;

def DW_LNS_advance_pc[link]

Show undocumented member
def DW_LNS_advance_pc: u8 = 2;

def DW_LNS_const_add_pc[link]

Show undocumented member
def DW_LNS_const_add_pc: u8 = 8;

def DW_LNS_copy[link]

Show undocumented member
def DW_LNS_copy: u8 = 1;

def DW_LNS_fixed_advance_pc[link]

Show undocumented member
def DW_LNS_fixed_advance_pc: u8 = 9;

def DW_LNS_isa[link]

Show undocumented member
def DW_LNS_isa: u8 = 12;

def DW_LNS_negate_stmt[link]

Show undocumented member
def DW_LNS_negate_stmt: u8 = 6;

def DW_LNS_set_basic_block[link]

Show undocumented member
def DW_LNS_set_basic_block: u8 = 7;

def DW_LNS_set_column[link]

Show undocumented member
def DW_LNS_set_column: u8 = 5;

def DW_LNS_set_epilogue_begin[link]

Show undocumented member
def DW_LNS_set_epilogue_begin: u8 = 11;

def DW_LNS_set_file[link]

Show undocumented member
def DW_LNS_set_file: u8 = 4;

def DW_LNS_set_prologue_end[link]

Show undocumented member
def DW_LNS_set_prologue_end: u8 = 10;

def DW_MACRO_define[link]

Show undocumented member
def DW_MACRO_define: u8 = 1;

def DW_MACRO_define_strp[link]

Show undocumented member
def DW_MACRO_define_strp: u8 = 5;

def DW_MACRO_define_strx[link]

Show undocumented member
def DW_MACRO_define_strx: u8 = 11;

def DW_MACRO_define_sup[link]

Show undocumented member
def DW_MACRO_define_sup: u8 = 8;

def DW_MACRO_end_file[link]

Show undocumented member
def DW_MACRO_end_file: u8 = 4;

def DW_MACRO_hi_user[link]

Show undocumented member
def DW_MACRO_hi_user: u8 = 255;

def DW_MACRO_import[link]

Show undocumented member
def DW_MACRO_import: u8 = 7;

def DW_MACRO_import_sup[link]

Show undocumented member
def DW_MACRO_import_sup: u8 = 10;

def DW_MACRO_lo_user[link]

Show undocumented member
def DW_MACRO_lo_user: u8 = 224;

def DW_MACRO_start_file[link]

Show undocumented member
def DW_MACRO_start_file: u8 = 3;

def DW_MACRO_undef[link]

Show undocumented member
def DW_MACRO_undef: u8 = 2;

def DW_MACRO_undef_strp[link]

Show undocumented member
def DW_MACRO_undef_strp: u8 = 6;

def DW_MACRO_undef_strx[link]

Show undocumented member
def DW_MACRO_undef_strx: u8 = 12;

def DW_MACRO_undef_sup[link]

Show undocumented member
def DW_MACRO_undef_sup: u8 = 9;

def DW_OP_abs[link]

Show undocumented member
def DW_OP_abs: u8 = 25;

def DW_OP_addrx[link]

Show undocumented member
def DW_OP_addrx: u8 = 161;

def DW_OP_and[link]

Show undocumented member
def DW_OP_and: u8 = 26;

def DW_OP_bit_piece[link]

Show undocumented member
def DW_OP_bit_piece: u8 = 157;

def DW_OP_bra[link]

Show undocumented member
def DW_OP_bra: u8 = 40;

def DW_OP_breg0[link]

Show undocumented member
def DW_OP_breg0: u8 = 112;

def DW_OP_breg1[link]

Show undocumented member
def DW_OP_breg1: u8 = 113;

def DW_OP_breg10[link]

Show undocumented member
def DW_OP_breg10: u8 = 122;

def DW_OP_breg11[link]

Show undocumented member
def DW_OP_breg11: u8 = 123;

def DW_OP_breg12[link]

Show undocumented member
def DW_OP_breg12: u8 = 124;

def DW_OP_breg13[link]

Show undocumented member
def DW_OP_breg13: u8 = 125;

def DW_OP_breg14[link]

Show undocumented member
def DW_OP_breg14: u8 = 126;

def DW_OP_breg15[link]

Show undocumented member
def DW_OP_breg15: u8 = 127;

def DW_OP_breg16[link]

Show undocumented member
def DW_OP_breg16: u8 = 128;

def DW_OP_breg17[link]

Show undocumented member
def DW_OP_breg17: u8 = 129;

def DW_OP_breg18[link]

Show undocumented member
def DW_OP_breg18: u8 = 130;

def DW_OP_breg19[link]

Show undocumented member
def DW_OP_breg19: u8 = 131;

def DW_OP_breg2[link]

Show undocumented member
def DW_OP_breg2: u8 = 114;

def DW_OP_breg20[link]

Show undocumented member
def DW_OP_breg20: u8 = 132;

def DW_OP_breg21[link]

Show undocumented member
def DW_OP_breg21: u8 = 133;

def DW_OP_breg22[link]

Show undocumented member
def DW_OP_breg22: u8 = 134;

def DW_OP_breg23[link]

Show undocumented member
def DW_OP_breg23: u8 = 135;

def DW_OP_breg24[link]

Show undocumented member
def DW_OP_breg24: u8 = 136;

def DW_OP_breg25[link]

Show undocumented member
def DW_OP_breg25: u8 = 137;

def DW_OP_breg26[link]

Show undocumented member
def DW_OP_breg26: u8 = 138;

def DW_OP_breg27[link]

Show undocumented member
def DW_OP_breg27: u8 = 139;

def DW_OP_breg28[link]

Show undocumented member
def DW_OP_breg28: u8 = 140;

def DW_OP_breg29[link]

Show undocumented member
def DW_OP_breg29: u8 = 141;

def DW_OP_breg3[link]

Show undocumented member
def DW_OP_breg3: u8 = 115;

def DW_OP_breg30[link]

Show undocumented member
def DW_OP_breg30: u8 = 142;

def DW_OP_breg31[link]

Show undocumented member
def DW_OP_breg31: u8 = 143;

def DW_OP_breg4[link]

Show undocumented member
def DW_OP_breg4: u8 = 116;

def DW_OP_breg5[link]

Show undocumented member
def DW_OP_breg5: u8 = 117;

def DW_OP_breg6[link]

Show undocumented member
def DW_OP_breg6: u8 = 118;

def DW_OP_breg7[link]

Show undocumented member
def DW_OP_breg7: u8 = 119;

def DW_OP_breg8[link]

Show undocumented member
def DW_OP_breg8: u8 = 120;

def DW_OP_breg9[link]

Show undocumented member
def DW_OP_breg9: u8 = 121;

def DW_OP_bregx[link]

Show undocumented member
def DW_OP_bregx: u8 = 146;

def DW_OP_call2[link]

Show undocumented member
def DW_OP_call2: u8 = 152;

def DW_OP_call4[link]

Show undocumented member
def DW_OP_call4: u8 = 153;

def DW_OP_call_frame_cfa[link]

Show undocumented member
def DW_OP_call_frame_cfa: u8 = 156;

def DW_OP_call_ref[link]

Show undocumented member
def DW_OP_call_ref: u8 = 154;

def DW_OP_const1s[link]

Show undocumented member
def DW_OP_const1s: u8 = 9;

def DW_OP_const2s[link]

Show undocumented member
def DW_OP_const2s: u8 = 11;

def DW_OP_const2u[link]

Show undocumented member
def DW_OP_const2u: u8 = 10;

def DW_OP_const4s[link]

Show undocumented member
def DW_OP_const4s: u8 = 13;

def DW_OP_const4u[link]

Show undocumented member
def DW_OP_const4u: u8 = 12;

def DW_OP_const8s[link]

Show undocumented member
def DW_OP_const8s: u8 = 15;

def DW_OP_const8u[link]

Show undocumented member
def DW_OP_const8u: u8 = 14;

def DW_OP_const_type[link]

Show undocumented member
def DW_OP_const_type: u8 = 164;

def DW_OP_consts[link]

Show undocumented member
def DW_OP_consts: u8 = 17;

def DW_OP_constu[link]

Show undocumented member
def DW_OP_constu: u8 = 16;

def DW_OP_constx[link]

Show undocumented member
def DW_OP_constx: u8 = 162;

def DW_OP_convert[link]

Show undocumented member
def DW_OP_convert: u8 = 168;

def DW_OP_deref_type[link]

Show undocumented member
def DW_OP_deref_type: u8 = 166;

def DW_OP_div[link]

Show undocumented member
def DW_OP_div: u8 = 27;

def DW_OP_dref_size[link]

Show undocumented member
def DW_OP_dref_size: u8 = 148;

def DW_OP_drop[link]

Show undocumented member
def DW_OP_drop: u8 = 19;

def DW_OP_dup[link]

Show undocumented member
def DW_OP_dup: u8 = 18;

def DW_OP_entry_value[link]

Show undocumented member
def DW_OP_entry_value: u8 = 163;

def DW_OP_eq[link]

Show undocumented member
def DW_OP_eq: u8 = 41;

def DW_OP_fbreg[link]

Show undocumented member
def DW_OP_fbreg: u8 = 145;

def DW_OP_form_tls_address[link]

Show undocumented member
def DW_OP_form_tls_address: u8 = 155;

def DW_OP_ge[link]

Show undocumented member
def DW_OP_ge: u8 = 42;

def DW_OP_gt[link]

Show undocumented member
def DW_OP_gt: u8 = 43;

def DW_OP_hi_user[link]

Show undocumented member
def DW_OP_hi_user: u8 = 255;

def DW_OP_implicit_pointer[link]

Show undocumented member
def DW_OP_implicit_pointer: u8 = 160;

def DW_OP_implicit_value[link]

Show undocumented member
def DW_OP_implicit_value: u8 = 158;

def DW_OP_le[link]

Show undocumented member
def DW_OP_le: u8 = 44;

def DW_OP_lit0[link]

Show undocumented member
def DW_OP_lit0: u8 = 48;

def DW_OP_lit1[link]

Show undocumented member
def DW_OP_lit1: u8 = 49;

def DW_OP_lit10[link]

Show undocumented member
def DW_OP_lit10: u8 = 58;

def DW_OP_lit11[link]

Show undocumented member
def DW_OP_lit11: u8 = 59;

def DW_OP_lit12[link]

Show undocumented member
def DW_OP_lit12: u8 = 60;

def DW_OP_lit13[link]

Show undocumented member
def DW_OP_lit13: u8 = 61;

def DW_OP_lit14[link]

Show undocumented member
def DW_OP_lit14: u8 = 62;

def DW_OP_lit15[link]

Show undocumented member
def DW_OP_lit15: u8 = 63;

def DW_OP_lit16[link]

Show undocumented member
def DW_OP_lit16: u8 = 64;

def DW_OP_lit17[link]

Show undocumented member
def DW_OP_lit17: u8 = 65;

def DW_OP_lit18[link]

Show undocumented member
def DW_OP_lit18: u8 = 66;

def DW_OP_lit19[link]

Show undocumented member
def DW_OP_lit19: u8 = 67;

def DW_OP_lit2[link]

Show undocumented member
def DW_OP_lit2: u8 = 50;

def DW_OP_lit20[link]

Show undocumented member
def DW_OP_lit20: u8 = 68;

def DW_OP_lit21[link]

Show undocumented member
def DW_OP_lit21: u8 = 69;

def DW_OP_lit22[link]

Show undocumented member
def DW_OP_lit22: u8 = 70;

def DW_OP_lit23[link]

Show undocumented member
def DW_OP_lit23: u8 = 71;

def DW_OP_lit24[link]

Show undocumented member
def DW_OP_lit24: u8 = 72;

def DW_OP_lit25[link]

Show undocumented member
def DW_OP_lit25: u8 = 73;

def DW_OP_lit26[link]

Show undocumented member
def DW_OP_lit26: u8 = 74;

def DW_OP_lit27[link]

Show undocumented member
def DW_OP_lit27: u8 = 75;

def DW_OP_lit28[link]

Show undocumented member
def DW_OP_lit28: u8 = 76;

def DW_OP_lit29[link]

Show undocumented member
def DW_OP_lit29: u8 = 77;

def DW_OP_lit3[link]

Show undocumented member
def DW_OP_lit3: u8 = 51;

def DW_OP_lit30[link]

Show undocumented member
def DW_OP_lit30: u8 = 78;

def DW_OP_lit31[link]

Show undocumented member
def DW_OP_lit31: u8 = 79;

def DW_OP_lit4[link]

Show undocumented member
def DW_OP_lit4: u8 = 52;

def DW_OP_lit5[link]

Show undocumented member
def DW_OP_lit5: u8 = 53;

def DW_OP_lit6[link]

Show undocumented member
def DW_OP_lit6: u8 = 54;

def DW_OP_lit7[link]

Show undocumented member
def DW_OP_lit7: u8 = 55;

def DW_OP_lit8[link]

Show undocumented member
def DW_OP_lit8: u8 = 56;

def DW_OP_lit9[link]

Show undocumented member
def DW_OP_lit9: u8 = 57;

def DW_OP_lo_user[link]

Show undocumented member
def DW_OP_lo_user: u8 = 224;

def DW_OP_lt[link]

Show undocumented member
def DW_OP_lt: u8 = 45;

def DW_OP_minus[link]

Show undocumented member
def DW_OP_minus: u8 = 28;

def DW_OP_mod[link]

Show undocumented member
def DW_OP_mod: u8 = 29;

def DW_OP_mul[link]

Show undocumented member
def DW_OP_mul: u8 = 30;

def DW_OP_ne[link]

Show undocumented member
def DW_OP_ne: u8 = 46;

def DW_OP_neg[link]

Show undocumented member
def DW_OP_neg: u8 = 31;

def DW_OP_nop[link]

Show undocumented member
def DW_OP_nop: u8 = 150;

def DW_OP_not[link]

Show undocumented member
def DW_OP_not: u8 = 32;

def DW_OP_or[link]

Show undocumented member
def DW_OP_or: u8 = 33;

def DW_OP_over[link]

Show undocumented member
def DW_OP_over: u8 = 20;

def DW_OP_pick[link]

Show undocumented member
def DW_OP_pick: u8 = 21;

def DW_OP_piece[link]

Show undocumented member
def DW_OP_piece: u8 = 147;

def DW_OP_plus[link]

Show undocumented member
def DW_OP_plus: u8 = 34;

def DW_OP_plus_uconst[link]

Show undocumented member
def DW_OP_plus_uconst: u8 = 35;

def DW_OP_push_object_address[link]

Show undocumented member
def DW_OP_push_object_address: u8 = 151;

def DW_OP_reg0[link]

Show undocumented member
def DW_OP_reg0: u8 = 80;

def DW_OP_reg1[link]

Show undocumented member
def DW_OP_reg1: u8 = 81;

def DW_OP_reg10[link]

Show undocumented member
def DW_OP_reg10: u8 = 90;

def DW_OP_reg11[link]

Show undocumented member
def DW_OP_reg11: u8 = 91;

def DW_OP_reg12[link]

Show undocumented member
def DW_OP_reg12: u8 = 92;

def DW_OP_reg13[link]

Show undocumented member
def DW_OP_reg13: u8 = 93;

def DW_OP_reg14[link]

Show undocumented member
def DW_OP_reg14: u8 = 94;

def DW_OP_reg15[link]

Show undocumented member
def DW_OP_reg15: u8 = 95;

def DW_OP_reg16[link]

Show undocumented member
def DW_OP_reg16: u8 = 96;

def DW_OP_reg17[link]

Show undocumented member
def DW_OP_reg17: u8 = 97;

def DW_OP_reg18[link]

Show undocumented member
def DW_OP_reg18: u8 = 98;

def DW_OP_reg19[link]

Show undocumented member
def DW_OP_reg19: u8 = 99;

def DW_OP_reg2[link]

Show undocumented member
def DW_OP_reg2: u8 = 82;

def DW_OP_reg20[link]

Show undocumented member
def DW_OP_reg20: u8 = 100;

def DW_OP_reg21[link]

Show undocumented member
def DW_OP_reg21: u8 = 101;

def DW_OP_reg22[link]

Show undocumented member
def DW_OP_reg22: u8 = 102;

def DW_OP_reg23[link]

Show undocumented member
def DW_OP_reg23: u8 = 103;

def DW_OP_reg24[link]

Show undocumented member
def DW_OP_reg24: u8 = 104;

def DW_OP_reg25[link]

Show undocumented member
def DW_OP_reg25: u8 = 105;

def DW_OP_reg26[link]

Show undocumented member
def DW_OP_reg26: u8 = 106;

def DW_OP_reg27[link]

Show undocumented member
def DW_OP_reg27: u8 = 107;

def DW_OP_reg28[link]

Show undocumented member
def DW_OP_reg28: u8 = 108;

def DW_OP_reg29[link]

Show undocumented member
def DW_OP_reg29: u8 = 109;

def DW_OP_reg3[link]

Show undocumented member
def DW_OP_reg3: u8 = 83;

def DW_OP_reg30[link]

Show undocumented member
def DW_OP_reg30: u8 = 110;

def DW_OP_reg31[link]

Show undocumented member
def DW_OP_reg31: u8 = 111;

def DW_OP_reg4[link]

Show undocumented member
def DW_OP_reg4: u8 = 84;

def DW_OP_reg5[link]

Show undocumented member
def DW_OP_reg5: u8 = 85;

def DW_OP_reg6[link]

Show undocumented member
def DW_OP_reg6: u8 = 86;

def DW_OP_reg7[link]

Show undocumented member
def DW_OP_reg7: u8 = 87;

def DW_OP_reg8[link]

Show undocumented member
def DW_OP_reg8: u8 = 88;

def DW_OP_reg9[link]

Show undocumented member
def DW_OP_reg9: u8 = 89;

def DW_OP_regval_type[link]

Show undocumented member
def DW_OP_regval_type: u8 = 165;

def DW_OP_regx[link]

Show undocumented member
def DW_OP_regx: u8 = 144;

def DW_OP_reinterpret[link]

Show undocumented member
def DW_OP_reinterpret: u8 = 169;

def DW_OP_rot[link]

Show undocumented member
def DW_OP_rot: u8 = 23;

def DW_OP_shl[link]

Show undocumented member
def DW_OP_shl: u8 = 36;

def DW_OP_shr[link]

Show undocumented member
def DW_OP_shr: u8 = 37;

def DW_OP_shra[link]

Show undocumented member
def DW_OP_shra: u8 = 38;

def DW_OP_skip[link]

Show undocumented member
def DW_OP_skip: u8 = 47;

def DW_OP_stack_value[link]

Show undocumented member
def DW_OP_stack_value: u8 = 159;

def DW_OP_swap[link]

Show undocumented member
def DW_OP_swap: u8 = 22;

def DW_OP_xdref[link]

Show undocumented member
def DW_OP_xdref: u8 = 24;

def DW_OP_xdref_size[link]

Show undocumented member
def DW_OP_xdref_size: u8 = 149;

def DW_OP_xdref_type[link]

Show undocumented member
def DW_OP_xdref_type: u8 = 167;

def DW_OP_xor[link]

Show undocumented member
def DW_OP_xor: u8 = 39;

def DW_ORD_col_major[link]

Show undocumented member
def DW_ORD_col_major: u8 = 1;

def DW_ORD_row_major[link]

Show undocumented member
def DW_ORD_row_major: u8 = 0;

def DW_RLE_base_address[link]

Show undocumented member
def DW_RLE_base_address: u8 = 5;

def DW_RLE_base_addressx[link]

Show undocumented member
def DW_RLE_base_addressx: u8 = 1;

def DW_RLE_end_of_list[link]

Show undocumented member
def DW_RLE_end_of_list: u8 = 0;

def DW_RLE_offset_pair[link]

Show undocumented member
def DW_RLE_offset_pair: u8 = 4;

def DW_RLE_start_end[link]

Show undocumented member
def DW_RLE_start_end: u8 = 6;

def DW_RLE_start_length[link]

Show undocumented member
def DW_RLE_start_length: u8 = 7;

def DW_RLE_startx_endx[link]

Show undocumented member
def DW_RLE_startx_endx: u8 = 2;

def DW_RLE_startx_length[link]

Show undocumented member
def DW_RLE_startx_length: u8 = 3;

def DW_TAG_access_declaration[link]

Show undocumented member
def DW_TAG_access_declaration: u32 = 35;

def DW_TAG_array_type[link]

Show undocumented member
def DW_TAG_array_type: u32 = 1;

def DW_TAG_atomic_type[link]

Show undocumented member
def DW_TAG_atomic_type: u32 = 71;

def DW_TAG_base_type[link]

Show undocumented member
def DW_TAG_base_type: u32 = 36;

def DW_TAG_call_site[link]

Show undocumented member
def DW_TAG_call_site: u32 = 72;

def DW_TAG_call_site_parameter[link]

Show undocumented member
def DW_TAG_call_site_parameter: u32 = 73;

def DW_TAG_catch_block[link]

Show undocumented member
def DW_TAG_catch_block: u32 = 37;

def DW_TAG_class_type[link]

Show undocumented member
def DW_TAG_class_type: u32 = 2;

def DW_TAG_coarray_type[link]

Show undocumented member
def DW_TAG_coarray_type: u32 = 68;

def DW_TAG_common_block[link]

Show undocumented member
def DW_TAG_common_block: u32 = 26;

def DW_TAG_common_inclusion[link]

Show undocumented member
def DW_TAG_common_inclusion: u32 = 27;

def DW_TAG_compile_unit[link]

Show undocumented member
def DW_TAG_compile_unit: u32 = 17;

def DW_TAG_const_type[link]

Show undocumented member
def DW_TAG_const_type: u32 = 38;

def DW_TAG_constant[link]

Show undocumented member
def DW_TAG_constant: u32 = 39;

def DW_TAG_dwarf_procedure[link]

Show undocumented member
def DW_TAG_dwarf_procedure: u32 = 54;

def DW_TAG_dynamic_type[link]

Show undocumented member
def DW_TAG_dynamic_type: u32 = 70;

def DW_TAG_entry_point[link]

Show undocumented member
def DW_TAG_entry_point: u32 = 3;

def DW_TAG_enumeration_type[link]

Show undocumented member
def DW_TAG_enumeration_type: u32 = 4;

def DW_TAG_enumerator[link]

Show undocumented member
def DW_TAG_enumerator: u32 = 40;

def DW_TAG_file_type[link]

Show undocumented member
def DW_TAG_file_type: u32 = 41;

def DW_TAG_formal_parameter[link]

Show undocumented member
def DW_TAG_formal_parameter: u32 = 5;

def DW_TAG_friend[link]

Show undocumented member
def DW_TAG_friend: u32 = 42;

def DW_TAG_generic_subrange[link]

Show undocumented member
def DW_TAG_generic_subrange: u32 = 69;

def DW_TAG_hi_user[link]

Show undocumented member
def DW_TAG_hi_user: u32 = 65535;

def DW_TAG_immutable_type[link]

Show undocumented member
def DW_TAG_immutable_type: u32 = 75;

def DW_TAG_imported_module[link]

Show undocumented member
def DW_TAG_imported_module: u32 = 58;

def DW_TAG_imported_unit[link]

Show undocumented member
def DW_TAG_imported_unit: u32 = 61;

def DW_TAG_inheritance[link]

Show undocumented member
def DW_TAG_inheritance: u32 = 28;

def DW_TAG_inlined_subroutine[link]

Show undocumented member
def DW_TAG_inlined_subroutine: u32 = 29;

def DW_TAG_interface_type[link]

Show undocumented member
def DW_TAG_interface_type: u32 = 56;

def DW_TAG_lexical_block[link]

Show undocumented member
def DW_TAG_lexical_block: u32 = 11;

def DW_TAG_lo_user[link]

Show undocumented member
def DW_TAG_lo_user: u32 = 16512;

def DW_TAG_module[link]

Show undocumented member
def DW_TAG_module: u32 = 30;

def DW_TAG_namelist[link]

Show undocumented member
def DW_TAG_namelist: u32 = 43;

def DW_TAG_namelist_item[link]

Show undocumented member
def DW_TAG_namelist_item: u32 = 44;

def DW_TAG_namespace[link]

Show undocumented member
def DW_TAG_namespace: u32 = 57;

def DW_TAG_packed_type[link]

Show undocumented member
def DW_TAG_packed_type: u32 = 45;

def DW_TAG_partial_unit[link]

Show undocumented member
def DW_TAG_partial_unit: u32 = 60;

def DW_TAG_ptr_to_member_type[link]

Show undocumented member
def DW_TAG_ptr_to_member_type: u32 = 31;

def DW_TAG_reference_type[link]

Show undocumented member
def DW_TAG_reference_type: u32 = 16;

def DW_TAG_restrict_type[link]

Show undocumented member
def DW_TAG_restrict_type: u32 = 55;

def DW_TAG_rvalue_reference_type[link]

Show undocumented member
def DW_TAG_rvalue_reference_type: u32 = 66;

def DW_TAG_set_type[link]

Show undocumented member
def DW_TAG_set_type: u32 = 32;

def DW_TAG_shared_type[link]

Show undocumented member
def DW_TAG_shared_type: u32 = 64;

def DW_TAG_skeleton_unit[link]

Show undocumented member
def DW_TAG_skeleton_unit: u32 = 74;

def DW_TAG_string_type[link]

Show undocumented member
def DW_TAG_string_type: u32 = 18;

def DW_TAG_structure_type[link]

Show undocumented member
def DW_TAG_structure_type: u32 = 19;

def DW_TAG_subprogram[link]

Show undocumented member
def DW_TAG_subprogram: u32 = 46;

def DW_TAG_subrange_type[link]

Show undocumented member
def DW_TAG_subrange_type: u32 = 33;

def DW_TAG_template_alias[link]

Show undocumented member
def DW_TAG_template_alias: u32 = 67;

def DW_TAG_template_type_parameter[link]

Show undocumented member
def DW_TAG_template_type_parameter: u32 = 47;

def DW_TAG_template_value_parameter[link]

Show undocumented member
def DW_TAG_template_value_parameter: u32 = 48;

def DW_TAG_thrown_type[link]

Show undocumented member
def DW_TAG_thrown_type: u32 = 49;

def DW_TAG_try_block[link]

Show undocumented member
def DW_TAG_try_block: u32 = 50;

def DW_TAG_type_unit[link]

Show undocumented member
def DW_TAG_type_unit: u32 = 65;

def DW_TAG_typedef[link]

Show undocumented member
def DW_TAG_typedef: u32 = 22;

def DW_TAG_union_type[link]

Show undocumented member
def DW_TAG_union_type: u32 = 23;

def DW_TAG_unspecified_paramters[link]

Show undocumented member
def DW_TAG_unspecified_paramters: u32 = 24;

def DW_TAG_unspecified_type[link]

Show undocumented member
def DW_TAG_unspecified_type: u32 = 59;

def DW_TAG_variable[link]

Show undocumented member
def DW_TAG_variable: u32 = 52;

def DW_TAG_variant[link]

Show undocumented member
def DW_TAG_variant: u32 = 25;

def DW_TAG_variant_part[link]

Show undocumented member
def DW_TAG_variant_part: u32 = 51;

def DW_TAG_volatile_type[link]

Show undocumented member
def DW_TAG_volatile_type: u32 = 53;

def DW_TAG_with_stmt[link]

Show undocumented member
def DW_TAG_with_stmt: u32 = 34;

def DW_VIRTUALITY_none[link]

Show undocumented member
def DW_VIRTUALITY_none: u8 = 0;

def DW_VIRTUALITY_pure_virtual[link]

Show undocumented member
def DW_VIRTUALITY_pure_virtual: u8 = 2;

def DW_VIRTUALITY_virtual[link]

Show undocumented member
def DW_VIRTUALITY_virtual: u8 = 1;

def DW_VIS_exported[link]

Show undocumented member
def DW_VIS_exported: u8 = 2;

def DW_VIS_local[link]

Show undocumented member
def DW_VIS_local: u8 = 1;

def DW_VIS_qualified[link]

Show undocumented member
def DW_VIS_qualified: u8 = 3;

Functions

fn abbrev_table_finish[link]

fn abbrev_table_finish(table: *abbrev_table) void;

Frees resources associated with an abbrev_table.

fn addr_to_line[link]

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[link]

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[link]

fn debug_info_finish(di: *debug_info_reader) void;

Frees resources associated with a debug_info_reader.

fn debug_info_next[link]

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[link]

fn entry_finish(ent: *entry) void;

Frees resources associated with an entry.

fn exec_line_program[link]

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[link]

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[link]

fn get_strp(table: *string_table, offs: u64) const str;

Returns a string from the string table.

fn line_next[link]

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[link]

fn line_program_finish(prog: *line_program) void;

Frees resources associated with a line_program.

fn line_step[link]

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[link]

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[link]

fn load_strings(image: *image::image) (string_table | void | io::error);

Loads a DWARF string table from .debug_str.

fn read_debug_info[link]

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.