ELF Tool Chain / Wiki (original) (raw)
Error Handling
dwarf_seterrhand()
Y
Y
N
Y
Extended semantics.
dwarf_seterrarg()
Y
Y
N
Y
Extended semantics.
dwarf_errno
Y
Y
N
Y
Our Dwarf_Error is not opaque
dwarf_errmsg
Y
Y
N
Y
Our Dwarf_Error is not opaque
Initialization
dwarf_init()
Y
Y
Y
Y
dwarf_elf_init()
Y
Y
N
Y
dwarf_get_elf()
Y
Y
N
Y
dwarf_finish()
Y
Y
N
Y
Misc
dwarf_get_address_size()
Y
Y
Y
Y
dwarf_dealloc()
Y
Y
N
Y
Ours is a dummy call
dwarf_set_reloc_application()
Y
N
N
Y
DIE delivery
dwarf_next_cu_header
Y
Y
Y
Y
dwarf_next_cu_header_b
Y
N
Y
Y
dwarf_siblingof()
Y
Y
Y
Y
dwarf_child()
Y
Y
Y
Y
dwarf_offdie()
Y
Y
N
Y
DIE query
dwarf_tag()
Y
Y
Y
Y
dwarf_dieoffset()
Y
Y
Y
Y
dwarf_die_CU_offset()
Y
Y
Y
Y
dwarf_die_CU_offset_range()
Y
Y
Y
Y
dwarf_diename()
Y
Y
Y
Y
dwarf_die_abbrev_code()
Y
Y
Y
Y
dwarf_attrlist
Y
Y
Y
Y
dwarf_hasattr
Y
Y
Y
Y
dwarf_attr
Y
Y
Y
Y
dwarf_lowpc
Y
Y
Y
Y
dwarf_highpc
Y
Y
Y
Y
dwarf_bytesize
Y
Y
Y
Y
dwarf_bitsize
Y
Y
Y
Y
dwarf_bitoffset
Y
Y
Y
Y
dwarf_srclang
Y
Y
Y
Y
dwarf_arrayorder
Y
Y
Y
Y
dwarf_get_cu_die_offset_given_cu_header_offset()
Y
Y
Y
Y
Name too long...
Attribute Form Queries
dwarf_hasform
Y
Y
Y
Y
dwarf_whatform
Y
Y
Y
Y
dwarf_whatform_direct
Y
Y
Y
Y
dwarf_whatattr
Y
Y
Y
Y
dwarf_formref
Y
Y
Y
Y
dwarf_global_formref
Y
Y
Y
Y
dwarf_formaddr
Y
N
Y
Y
dwarf_formexprloc
Y
N
N
Y
dwarf_formflag
Y
Y
Y
Y
dwarf_formudata
Y
Y
Y
Y
dwarf_formsdata
Y
Y
Y
Y
dwarf_formsig8
Y
N
N
Y
dwarf_formblock
Y
N
Y
Y
dwarf_formstring
Y
N
Y
Y
dwarf_get_form_class
Y
N
N
Y
dwarf_attrval_flag
Y
N
N
N
Our Extension
dwarf_attrval_string
Y
N
N
N
Our Extension
dwarf_attrval_signed
Y
N
N
N
Our Extension
dwarf_attrval_unsigned
Y
N
N
N
Our Extension
Location List Queries
dwarf_loclist_n()
Y
N
Y
Y
dwarf_loclist()
Y
N
Y
Y
dwarf_loclist_from_expr()
Y
N
N
Y
dwarf_loclist_from_expr_a()
Y
N
N
Y
dwarf_loclist_from_expr_dealloc()
Y
N
N
N
Our Extension
dwarf_get_loclist_entry()
Y
N
N
Y
Line Number Operations
dwarf_srclines()
Y
N
Y
Y
dwarf_srcfiles()
Y
Y
Y
Y
dwarf_linebeginstatement()
Y
N
Y
Y
dwarf_lineendsequence()
Y
N
Y
Y
dwarf_lineno()
Y
N
Y
Y
dwarf_line_srcfileno()
Y
N
Y
Y
dwarf_lineaddr()
Y
N
Y
Y
dwarf_lineoff()
Y
N
Y
Y
dwarf_linesrc()
Y
N
Y
Y
dwarf_lineblock()
Y
N
Y
Y
Global Name Space Operations
dwarf_get_globals()
Y
N
Y
Y
dwarf_globname()
Y
N
Y
Y
dwarf_global_die_offset()
Y
N
Y
Y
dwarf_global_cu_offset()
Y
N
Y
Y
dwarf_global_name_offsets()
Y
N
Y
Y
Type Names Operations
dwarf_get_pubtypes()
Y
N
N
Y
dwarf_pubtypename()
Y
N
N
Y
dwarf_pubtype_die_offset()
Y
N
N
Y
dwarf_pubtype_cu_offset()
Y
N
N
Y
dwarf_pubtype_name_offsets()
Y
N
N
Y
User Defined Type Names Operations
dwarf_get_types()
Y
N
N
Y
dwarf_typename()
Y
N
N
Y
dwarf_type_die_offset()
Y
N
N
Y
dwarf_type_cu_offset()
Y
N
N
Y
dwarf_type_name_offsets()
Y
N
N
Y
Static Variable Names Operations
dwarf_get_vars()
Y
N
N
Y
dwarf_varname()
Y
N
N
Y
dwarf_var_die_offset()
Y
N
N
Y
dwarf_var_cu_offset()
Y
N
N
Y
dwarf_var_name_offsets()
Y
N
N
Y
Static Function Names Operations
dwarf_get_funcs()
Y
N
N
Y
dwarf_funcname()
Y
N
N
Y
dwarf_func_die_offset()
Y
N
N
Y
dwarf_func_cu_offset()
Y
N
N
Y
dwarf_func_name_offsets()
Y
N
N
Y
Weak Names Space Operations
dwarf_get_weaks()
Y
N
N
Y
dwarf_weakname()
Y
N
N
Y
dwarf_weak_die_offset()
Y
N
N
Y
dwarf_weak_cu_offset()
Y
N
N
Y
dwarf_weak_name_offsets()
Y
N
N
Y
Macro Information Operations
dwarf_find_macro_value_start()
Y
N
Y
Y
dwarf_get_macro_details()
Y
N
Y
Y
Call Frame Operations
dwarf_get_fde_list()
Y
N
Y
Y
dwarf_get_fde_list_eh()
Y
N
Y
Y
dwarf_get_fde_n()
Y
N
Y
Y
dwarf_get_fde_at_pc()
Y
N
Y
Y
dwarf_get_cie_of_fde()
Y
N
Y
Y
dwarf_get_fde_for_die()
Y
N
N
Y
dwarf_get_fde_range()
Y
N
Y
Y
dwarf_get_cie_info()
Y
N
Y
Y
dwarf_get_fde_instr_bytes()
Y
N
Y
Y
dwarf_get_fde_info_for_reg()
Y
N
Y
Y
dwarf_get_fde_info_for_all_regs()
Y
N
Y
Y
dwarf_get_fde_info_for_reg3()
Y
N
Y
Y
dwarf_get_fde_info_for_cfa_reg3()
Y
N
Y
Y
dwarf_get_fde_info_for_all_regs3()
Y
N
Y
Y
dwarf_set_frame_rule_table_size()
Y
N
N
Y
dwarf_set_frame_rule_initial_value()
Y
N
N
Y
dwarf_set_frame_cfa_value()
Y
N
Y
Y
dwarf_set_frame_same_value()
Y
N
N
Y
dwarf_set_frame_undefined_value()
Y
N
N
Y
dwarf_expand_frame_instructions()
Y
N
N
Y
dwarf_free_expanded_frame_instructions()
Y
N
N
N
Our Extension
Abbreviations access
dwarf_get_abbrev()
Y
N
Y
Y
dwarf_get_abbrev_tag()
Y
N
Y
Y
dwarf_get_abbrev_code()
Y
N
Y
Y
dwarf_get_abbrev_children_flag()
Y
N
Y
Y
dwarf_get_abbrev_entry()
Y
N
Y
Y
String Section Operations
dwarf_get_str()
Y
N
N
Y
Address Range Operations
dwarf_get_aranges()
Y
N
Y
Y
dwarf_get_arange()
Y
N
Y
Y
dwarf_get_cu_die_offset()
Y
N
Y
Y
dwarf_get_arange_cu_header_offset()
Y
N
Y
Y
dwarf_get_arange_info()
Y
N
Y
Y
Ranges Operations
dwarf_get_ranges()
Y
N
Y
Y
dwarf_get_ranges_a()
Y
N
Y
Y
Ours is identical to dwarf_get_ranges()
dwarf_ranges_dealloc()
Y
N
N
Y
no-op
Convert Names To Strings
dwarf_get_ACCESS_name()
Y
N
N
Y
dwarf_get_AT_name()
Y
N
N
Y
dwarf_get_ATE_name()
Y
N
N
Y
dwarf_get_ADDR_name()
N
dwarf_get_ATCF_name()
N
dwarf_get_CC_name()
Y
N
N
Y
dwarf_get_CFA_name()
Y
N
N
Y
dwarf_get_CHILDREN_name()
Y
N
N
Y
dwarf_get_children_name()
N
dwarf_get_DS_name()
N
dwarf_get_DSC_name()
Y
N
N
Y
dwarf_get_EH_name()
N
dwarf_get_END_name()
N
dwarf_get_FORM_name()
Y
N
N
Y
dwarf_get_FRAME_name()
N
dwarf_get_ID_name()
Y
N
N
Y
dwarf_get_INL_name()
Y
N
N
Y
dwarf_get_LANG_name()
Y
N
N
Y
dwarf_get_LNE_name()
Y
N
N
Y
dwarf_get_LNS_name()
Y
N
N
Y
dwarf_get_MACINFO_name()
Y
N
N
Y
dwarf_get_OP_name()
Y
N
N
Y
dwarf_get_ORD_name()
Y
N
N
Y
dwarf_get_TAG_name()
Y
N
N
Y
dwarf_get_VIRTUALITY_name()
Y
N
N
Y
dwarf_get_VIS_name()
Y
N
N
Y
Producer General
dwarf_producer_init()
Y
N
N
Y
dwarf_producer_init_b()
Y
N
N
Y
dwarf_transform_to_disk_form()
Y
N
N
Y
dwarf_get_section_bytes()
Y
N
N
Y
dwarf_get_relocation_info_count()
Y
N
N
Y
dwarf_get_relocation_info()
Y
N
N
Y
dwarf_reset_section_bytes()
Y
N
N
Y
dwarf_producer_init()
N
Debugging Information Entry Creation
dwarf_add_die_to_debug()
Y
N
N
Y
dwarf_new_die()
Y
N
N
Y
dwarf_die_link()
Y
N
N
Y
needs further verification
Attribute Creation
dwarf_add_AT_location_expr()
Y
N
N
Y
dwarf_add_AT_name()
Y
N
N
Y
We always use DW_FORM_strp
dwarf_add_AT_comp_dir()
Y
N
N
Y
We always use DW_FORM_strp
dwarf_add_AT_producer()
Y
N
N
Y
We always use DW_FORM_strp
dwarf_add_AT_const_value_signedint()
Y
N
N
Y
dwarf_add_AT_const_value_unsignedint()
Y
N
N
Y
dwarf_add_AT_const_value_string()
Y
N
N
Y
We always use DW_FORM_strp
dwarf_add_AT_targ_address()
Y
N
N
Y
dwarf_add_AT_targ_address_b()
Y
N
N
Y
dwarf_add_AT_dataref()
Y
N
N
Y
dwarf_add_AT_ref_address()
Y
N
N
Y
dwarf_add_AT_unsigned_const()
Y
N
N
Y
dwarf_add_AT_signed_const()
Y
N
N
Y
dwarf_add_AT_reference()
Y
N
N
Y
dwarf_add_AT_flag()
Y
N
N
Y
dwarf_add_AT_string()
Y
N
N
Y
We always use DW_FORM_strp
Expression Creation
dwarf_new_expr()
Y
N
N
Y
dwarf_add_expr_gen()
Y
N
N
Y
dwarf_add_expr_addr()
Y
N
N
Y
dwarf_add_expr_addr_b()
Y
N
N
Y
dwarf_expr_current_offset()
Y
N
N
Y
dwarf_expr_into_block()
Y
N
N
Y
Line Number Creation
dwarf_add_line_entry()
Y
N
N
Y
dwarf_lne_set_address()
Y
N
N
Y
dwarf_lne_end_sequence()
Y
N
N
Y
dwarf_add_directory_decl()
Y
N
N
Y
dwarf_add_file_decl()
Y
N
N
Y
Arange Creation
dwarf_add_arange()
Y
N
N
Y
dwarf_add_arange_b()
Y
N
N
Y
Pubnames Creation
dwarf_add_pubname()
Y
N
N
Y
Weaknames Creation
dwarf_add_weakname()
Y
N
N
Y
Static Function Name Creation
dwarf_add_funcname()
Y
N
N
Y
User-defined Type Name Creation
dwarf_add_typename()
Y
N
N
Y
Static Variable Name Creation
dwarf_add_varname()
Y
N
N
Y
Macro Info Creation
dwarf_def_macro()
Y
N
N
Y
dwarf_undef_macro()
Y
N
N
Y
dwarf_start_macro_file()
Y
N
N
Y
dwarf_end_macro_file()
Y
N
N
Y
dwarf_vendor_ext()
Y
N
N
Y
Frame Info Creation
dwarf_new_fde()
Y
N
N
Y
dwarf_add_frame_cie()
Y
N
N
Y
dwarf_add_frame_fde()
Y
N
N
Y
dwarf_add_frame_fde_b()
Y
N
N
Y
dwarf_add_frame_info()
N
SGI libdwarf MIPS extension?
dwarf_add_frame_info_b()
N
SGI libdwarf MIPS extension?
dwarf_fde_cfa_offset()
Y
N
N
Y
dwarf_add_fde_inst()
Y
N
N
Y