DIE Tags

DW_TAG Value Description Producer elfutils support
DW_TAG_atomic_type 0x47 DWARF5 C11 _Atomic type qualifier GCC5 libdw dwarf_peel_type
DW_TAG_MIPS_loop 0x4081 Never implemented, mips_extensions Nothing Constant only
DW_TAG_format_label 0x4101 Unknown Fortran related Unknown Constant only
DW_TAG_function_template 0x4102 Unknown C++ related Unknown Constant only
DW_TAG_class_template 0x4103 Unknown C++ related Unknown Constant only
DW_TAG_GNU_BINCL 0x4104 Marks start of new include file GCC -feliminate-dwarf2-dups Constant only
DW_TAG_GNU_EINCL 0x4104 Marks end of include file GCC -feliminate-dwarf2-dups Constant only
DW_TAG_GNU_template_template_param 0x4106 GNU Template Parms G++ Constant only
DW_TAG_GNU_template_parameter_pack 0x4107 GNU Template Parms and DWARF5 proposal G++ Constant only
DW_TAG_GNU_formal_parameter_pack 0x4108 GNU Template Parms and DWARF5 proposal G++ Constant only
DW_TAG_GNU_call_site 0x4109 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_TAG_GNU_call_site_parameter 0x410a GNU call site DWARF5 proposal GCC Recognized in readelf

TAG Attributes

DW_AT Value Description Producer elfutils support
DW_AT_noreturn 0x87 Identifies a subprogram that does not return to its caller, DWARFv5 GCC5 Constant only
DW_AT_MIPS_fde 0x2001 subprogram tag attribute, offset into .debug_frame section, mips_extensions Unknown Constant only
DW_AT_MIPS_loop_begin 0x2002 Never implemented, mips_extensions Nothing Constant only
DW_AT_MIPS_tail_loop_begin 0x2003 Never implemented, mips_extensions Nothing Constant only
DW_AT_MIPS_epilog_begin 0x2004 Never implemented, mips_extensions Nothing Constant only
DW_AT_MIPS_loop_unroll_factor 0x2005 Never implemented, mips_extensions Nothing Constant only
DW_AT_MIPS_software_pipeline_depth 0x2006 Never implemented, mips_extensions Nothing Constant only
DW_AT_MIPS_linkage_name 0x2007 Same as DWARF4 DW_AT_linkage_name GCC Constant only
DW_AT_MIPS_stride 0x2008 F90 array stride, mips_extensions Unknown Constant only
DW_AT_MIPS_abstract_name 0x2009 name of inlined_subroutine with abstract root in other CU, mips_extensions Unknown Constant only
DW_AT_MIPS_clone_origin 0x200a name of non-specialed version of cloned subroutine, mips_extensions Unknown Constant only
DW_AT_MIPS_has_inlines 0x200b hint for inlined subroutines under subprogram DIE, mips_extensions Unknown Constant only
DW_AT_MIPS_stride_byte 0x200c F90 array stride, mips_extensions Unknown Constant only
DW_AT_MIPS_stride_elem 0x200d F90 array stride, mips_extensions Unknown Constant only
DW_AT_MIPS_ptr_dopetype 0x200e F90 Dope Vector, mips_extensions Unknown Constant only
DW_AT_MIPS_allocatable_dopetype 0x200f F90 Dope Vector, mips_extensions Unknown Constant only
DW_AT_MIPS_assumed_shape_dopetype 0x2010 F90 Dope Vector, mips_extensions Unknown Constant only
DW_AT_MIPS_assumed_size 0x2011 F90 arrays, mips_extensions Unknown Constant only
DW_AT_sf_names 0x2101 DWARF1 only? Unknown Constant only
DW_AT_src_info 0x2102 DWARF1 only? Unknown Constant only
DW_AT_mac_info 0x2103 DWARF1 only? Unknown Constant only
DW_AT_src_coords 0x2104 DWARF1 only? Unknown Constant only
DW_AT_body_begin 0x2105 DWARF1 only? Unknown Constant only
DW_AT_body_end 0x2106 DWARF1 only? Unknown Constant only
DW_AT_GNU_vector 0x2107 ppc/ppc64 Altivec return value GCC dwfl_module_return_value_location
DW_AT_GNU_guarded_by 0x2108 GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_pt_guarded_by 0x2109 GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_guarded 0x210a GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_pt_guarded 0x210b GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_locks_excluded 0x210c GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_exclusive_locks_required 0x210d GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_shared_locks_required 0x210e GNU ThreadSafetyAnnotations Not implemented Constant only
DW_AT_GNU_odr_signature 0x210f link-time ODR checking part of GNU DwarfSeparateTypeInfo GCC Constant only
DW_AT_GNU_template_name 0x2110 GNU Template Parms and DWARF5 proposal G++ Constant only
DW_AT_GNU_call_site_value 0x2111 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_call_site_data_value 0x2112 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_call_site_target 0x2113 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_call_site_target_clobbered 0x2114 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_tail_call 0x2115 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_all_tail_call_sites 0x2116 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_all_call_sites 0x2117 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_all_source_call_sites 0x2118 GNU call site DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_macros 0x2119 GNU .debug_macro DWARF5 proposal GCC Recognized in readelf
DW_AT_GNU_deleted 0x211a Attribute added for C++11 deleted special member functions (= delete;) G++ Constant only
DW_AT_GNU_dwo_name 0x2130 GNU Fission DWARF5 proposal Unknown No support
DW_AT_GNU_dwo_id 0x2131 GNU Fission DWARF5 proposal Unknown No support
DW_AT_GNU_ranges_base 0x2132 GNU Fission DWARF5 proposal Unknown No support
DW_AT_GNU_addr_base 0x2133 GNU Fission DWARF5 proposal Unknown No support
DW_AT_GNU_pubnames 0x2134 GNU Fission DWARF5 proposal GCC No support
DW_AT_GNU_pubtypes 0x2135 GNU Fission DWARF5 proposal GCC No support

Attribute Forms

DW_FORM Value Description Producer elfutils support
DW_FORM_GNU_addr_index 0x1f01 GNU Fission DWARF5 proposal Unknown No support
DW_FORM_GNU_str_index 0x1f02 GNU Fission DWARF5 proposal Unknown No support
DW_FORM_GNU_ref_alt 0x1f20 DWZ multifile DWARF5 proposal DWZ libdw if configured with --enable-dwz
DW_FORM_GNU_strp_alt 0x1f21 DWZ multifile DWARF5 proposal DWZ libdw if configured with --enable-dwz

Expression Opcodes

DW_OP Value Description Producer elfutils support
DW_OP_GNU_push_tls_address 0xe0 Translates offset to address in TLS area (NOT equivalent to DWARF4 DW_OP_form_tls_address which translates addresses directly) GCC Constant only
DW_OP_GNU_uninit 0xf0 Track uninitialized variables GCC -fvar-tracking-uninit Constant only
DW_OP_GNU_encoded_addr 0xf1 absolute address in .eh_frame section, GAS CFI GCC?/GAS? Constant only
DW_OP_GNU_implicit_pointer 0xf2 GNU implicit pointer original DWARF5 proposal new DWARF5 version GCC libdw dwarf_getlocation_implicit_pointer
DW_OP_GNU_entry_value 0xf3 GNU entry value DWARF5 proposal GCC readelf
DW_OP_GNU_const_type 0xf4 Typed DWARF stack DWARF draft proposal GCC readelf
DW_OP_GNU_regval_type 0xf5 Typed DWARF stack DWARF draft proposal GCC readelf
DW_OP_GNU_deref_type 0xf6 Typed DWARF stack DWARF draft proposal GCC readelf
DW_OP_GNU_convert 0xf7 Typed DWARF stack DWARF draft proposal GCC readelf
DW_OP_GNU_reinterpret 0xf9 Typed DWARF stack DWARF draft proposal, background info GCC readelf
DW_OP_GNU_parameter_ref 0xfa References optimized out parameter GCC readelf
DW_OP_GNU_addr_index 0xfb GNU Fission DWARF5 proposal Unknown No support
DW_OP_GNU_const_index 0xfc GNU Fission DWARF5 proposal Unknown No support
DW_OP_GNU_variable_value 0xfd Provides value (not address) of referenced DIE GCC patch DWARF6 proposal GCC readelf, libdw

Language codes

DW_LANG Value Description Producer elfutils support
DW_LANG_Go 0x16 Go DWARF5 proposal GCC readelf
DW_LANG_C_plus_plus_11 0x1a C++11 DWARFv5 GCC readelf, libdw
DW_LANG_C11 0x1d C11 DWARFv5 GCC readelf, libdw
DW_LANG_C_plus_plus_14 0x21 C++14 DWARFv5 GCC readelf, libdw
DW_LANG_Haskell 0x18 Haskell DWARFv5 ghc readelf
DW_LANG_Fortran03 0x22 Fortran 2003 DWARFv5 GCC5 readelf, libdw
DW_LANG_Fortran08 0x23 Fortran 2008 DWARFv5 GCC5 readelf, libdw
DW_LANG_Mips_Assembler 0x8001 Generic Assembler (Note spelling _Mips_, not _MIPS_) GAS readelf

Call Frame Address instructions

DW_CFA Value Description Producer elfutils support
DW_CFA_MIPS_advance_loc8 0x1d 8 byte DW_CFA_advance_loc GCC? libdw dwarf_cfi_addrframe
DW_CFA_GNU_window_save 0x2d magic shorthand used only by SPARC GCC libdw dwarf_cfi_addrframe
DW_CFA_GNU_args_size 0x2e uleb128 argument indicating function stack size GCC? parsed but ignored
DW_CFA_GNU_negative_offset_extended 0x2f GNU extension obsoleted by DWARF3 DW_CFA_offset_extended_sf very old < 2002 GCC libdw dwarf_cfi_addrframe