<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to libdwarf</title><link>https://sourceforge.net/p/elftoolchain/wiki/libdwarf/</link><description>Recent changes to libdwarf</description><atom:link href="https://sourceforge.net/p/elftoolchain/wiki/libdwarf/feed" rel="self"/><language>en</language><lastBuildDate>Sun, 29 Dec 2013 13:39:02 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/elftoolchain/wiki/libdwarf/feed" rel="self" type="application/rss+xml"/><item><title>libdwarf modified by Joseph Koshy</title><link>https://sourceforge.net/p/elftoolchain/wiki/libdwarf/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -8,1438 +8,263 @@

   * Memory management is totally different from [SGI/DA libdwarf](http://reality.sgiweb.org/davea/dwarf.html). Most data structures are stored in internal linked lists. When an application requires data objects pointers to internally stored objects are returned instead of allocating new copies. As a result, in most situations, applications should not free the pointers returned by the library. 

-## Tickets
-
-[Ticket](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=id&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary&amp;amp;desc=1) [Status](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=status&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Owner](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=owner&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Milestone](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=milestone&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary) [Summary](/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=summary&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary)
-
-[#22](/apps/trac/elftoolchain/ticket/22)
-new 
-kaiwang27 
-RELEASE_1_0 
-[Create a test suite for libdwarf.](/apps/trac/elftoolchain/ticket/22)
-
-[#23](/apps/trac/elftoolchain/ticket/23)
-new 
-jkoshy 
-RELEASE_1_0 
-[Create a tutorial for libdwarf](/apps/trac/elftoolchain/ticket/23)
-
-[#31](/apps/trac/elftoolchain/ticket/31)
-new 
-kaiwang27 
-Future Work 
-[Redesign some of the existing APIs in libdwarf.](/apps/trac/elftoolchain/ticket/31)
-
-[#37](/apps/trac/elftoolchain/ticket/37)
-new 
-kaiwang27 
-Future Work 
-[New convenience functions for `libdwarf`](/apps/trac/elftoolchain/ticket/37)
-
-[#291](/apps/trac/elftoolchain/ticket/291)
-new 
-Future Work 
-[Diffs to get svn rev 1216 to build on Win7 under msvc](/apps/trac/elftoolchain/ticket/291)
-
-[#326](/apps/trac/elftoolchain/ticket/326)
-new 
-RELEASE_1_0 
-[Dependency cycles in libdwarf](/apps/trac/elftoolchain/ticket/326)
-
-[#397](/apps/trac/elftoolchain/ticket/397)
-new 
-kaiwang27 
-RELEASE_1_0 
-[CIE augmentation "HC" should be accepted](/apps/trac/elftoolchain/ticket/397)
-
-[#405](/apps/trac/elftoolchain/ticket/405)
-new 
-kaiwang27 
-RELEASE_1_0 
-[Add test cases for libdwarf (r2595)](/apps/trac/elftoolchain/ticket/405)
-
-[#408](/apps/trac/elftoolchain/ticket/408)
-new 
-kaiwang27 
-RELEASE_1_0 
-[Add support for DWARF4 ".debug_types" section](/apps/trac/elftoolchain/ticket/408)
-
 ## Implementation Status

-**API**
-**Implementation**
-**Manual Page**
-**Test Cases**
-**Compatible w/ SGI**
-**Comments**
-
-**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
-Our Extension
-
-`dwarf_attrval_string`
-Y
-N
-N
-Our Extension
-
-`dwarf_attrval_signed`
-Y
-N
-N
-Our Extension
-
-`dwarf_attrval_unsigned`
-Y
-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
-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 Operataions**
-
-`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
-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 
-
-**Attributes 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
+ **API** | **Implementation** | **Manual Page** | **Test Cases** | **Compatible w/ SGI** |  **Comments**
+ ----- | ---------------- | ------------- | ----------- | ------------------ | ------------
+ **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 |

 ## References

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joseph Koshy</dc:creator><pubDate>Sun, 29 Dec 2013 13:39:02 -0000</pubDate><guid>https://sourceforge.netd0638e4bf03f85e84293d59f60e04179ae16e8e7</guid></item><item><title>libdwarf modified by Joseph Koshy</title><link>https://sourceforge.net/p/elftoolchain/wiki/libdwarf/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="libdwarf"&gt;libdwarf&lt;/h1&gt;
&lt;div class="toc"&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#libdwarf"&gt;libdwarf&lt;/a&gt;&lt;ul&gt;
&lt;li&gt;&lt;a href="#implementation-notes"&gt;Implementation Notes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#tickets"&gt;Tickets&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#implementation-status"&gt;Implementation Status&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#references"&gt;References&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;libdwarf&lt;/strong&gt; A library for parsing DWARF debug information &lt;/p&gt;
&lt;h2 id="implementation-notes"&gt;Implementation Notes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Memory management is totally different from &lt;a class="" href="http://reality.sgiweb.org/davea/dwarf.html" rel="nofollow"&gt;SGI/DA libdwarf&lt;/a&gt;. Most data structures are stored in internal linked lists. When an application requires data objects pointers to internally stored objects are returned instead of allocating new copies. As a result, in most situations, applications should not free the pointers returned by the library. &lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="tickets"&gt;Tickets&lt;/h2&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=id&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary&amp;amp;desc=1"&gt;Ticket&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=status&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Status&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=owner&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Owner&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=milestone&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Milestone&lt;/a&gt; &lt;a class="" href="/apps/trac/elftoolchain/query?status=%21closed&amp;amp;max=0&amp;amp;component=libdwarf&amp;amp;order=summary&amp;amp;col=id&amp;amp;col=status&amp;amp;col=owner&amp;amp;col=milestone&amp;amp;col=summary"&gt;Summary&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/22"&gt;#22&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/22"&gt;Create a test suite for libdwarf.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/23"&gt;#23&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
jkoshy &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/23"&gt;Create a tutorial for libdwarf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/31"&gt;#31&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/31"&gt;Redesign some of the existing APIs in libdwarf.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/37"&gt;#37&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/37"&gt;New convenience functions for &lt;code&gt;libdwarf&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/291"&gt;#291&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
Future Work &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/291"&gt;Diffs to get svn rev 1216 to build on Win7 under msvc&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/326"&gt;#326&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/326"&gt;Dependency cycles in libdwarf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/397"&gt;#397&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/397"&gt;CIE augmentation "HC" should be accepted&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/405"&gt;#405&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/405"&gt;Add test cases for libdwarf (r2595)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="/apps/trac/elftoolchain/ticket/408"&gt;#408&lt;/a&gt;&lt;br /&gt;
new &lt;br /&gt;
kaiwang27 &lt;br /&gt;
RELEASE_1_0 &lt;br /&gt;
&lt;a class="" href="/apps/trac/elftoolchain/ticket/408"&gt;Add support for DWARF4 ".debug_types" section&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="implementation-status"&gt;Implementation Status&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;API&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Implementation&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Manual Page&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Test Cases&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Compatible w/ SGI&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;Comments&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Error Handling&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_seterrhand()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Extended semantics. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_seterrarg()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Extended semantics. &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_errno&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Our &lt;code&gt;Dwarf_Error&lt;/code&gt; is not opaque &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_errmsg&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Our &lt;code&gt;Dwarf_Error&lt;/code&gt; is not opaque &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Initialization&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_init()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_elf_init()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_elf()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_finish()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Misc&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_address_size()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_dealloc()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Ours is a dummy call &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_reloc_application()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DIE delivery&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_next_cu_header&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_next_cu_header_b&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_siblingof()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_child()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_offdie()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DIE query&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_tag()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_dieoffset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_die_CU_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_die_CU_offset_range()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_diename()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_die_abbrev_code()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attrlist&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_hasattr&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attr&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lowpc&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_highpc&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_bytesize&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_bitsize&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_bitoffset&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_srclang&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_arrayorder&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_cu_die_offset_given_cu_header_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Name too long... &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attribute Form Queries&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_hasform&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_whatform&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_whatform_direct&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_whatattr&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formref&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_global_formref&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formaddr&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formexprloc&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formflag&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formudata&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formsdata&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formsig8&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formblock&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_formstring&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_form_class&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attrval_flag&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attrval_string&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attrval_signed&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_attrval_unsigned&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Location List Queries&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_loclist_n()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_loclist()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_loclist_from_expr()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_loclist_from_expr_a()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_loclist_from_expr_dealloc()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_loclist_entry()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Line Number Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_srclines()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_srcfiles()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_linebeginstatement()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lineendsequence()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lineno()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_line_srcfileno()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lineaddr()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lineoff()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_linesrc()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lineblock()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Global Name Space Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_globals()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_globname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_global_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_global_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_global_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Type Names Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_pubtypes()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_pubtypename()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_pubtype_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_pubtype_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_pubtype_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User Defined Type Names Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_types()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_typename()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_type_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_type_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_type_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Static Variable Names Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_vars()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_varname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_var_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_var_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_var_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Static Function Names Operataions&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_funcs()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_funcname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_func_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_func_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_func_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weak Names Space Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_weaks()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_weakname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_weak_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_weak_cu_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_weak_name_offsets()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Macro Information Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_find_macro_value_start()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_macro_details()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Call Frame Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_list()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_list_eh()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_n()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_at_pc()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_cie_of_fde()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_for_die()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_range()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_cie_info()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_instr_bytes()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_info_for_reg()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_info_for_all_regs()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_info_for_reg3()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_info_for_cfa_reg3()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_fde_info_for_all_regs3()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_frame_rule_table_size()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_frame_rule_initial_value()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_frame_cfa_value()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_frame_same_value()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_set_frame_undefined_value()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_expand_frame_instructions()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_free_expanded_frame_instructions()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Our Extension&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Abbreviations access&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_abbrev()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_abbrev_tag()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_abbrev_code()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_abbrev_children_flag()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_abbrev_entry()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;String Section Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_str()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Address Range Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_aranges()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_arange()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_cu_die_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_arange_cu_header_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_arange_info()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ranges Operations&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ranges()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ranges_a()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
Y&lt;br /&gt;
Ours is identical to dwarf_get_ranges() &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_ranges_dealloc()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
no-op &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Convert Names To Strings&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ACCESS_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_AT_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ATE_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ADDR_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ATCF_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_CC_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_CFA_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_CHILDREN_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_children_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_DS_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_DSC_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_EH_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_END_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_FORM_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_FRAME_name()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ID_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_INL_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_LANG_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_LNE_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_LNS_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_MACINFO_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_OP_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_ORD_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_TAG_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_VIRTUALITY_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_VIS_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Producer General&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_producer_init()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_producer_init_b()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_transform_to_disk_form()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_section_bytes()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_relocation_info_count()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_get_relocation_info()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_reset_section_bytes()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_producer_init()&lt;/code&gt;&lt;br /&gt;
N&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Debugging Information Entry Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_die_to_debug()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_new_die()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_die_link()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
needs further verification &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Attributes Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_location_expr()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_name()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
We always use DW_FORM_strp &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_comp_dir()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
We always use DW_FORM_strp &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_producer()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
We always use DW_FORM_strp &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_const_value_signedint()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_const_value_unsignedint()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_const_value_string()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
We always use DW_FORM_strp &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_targ_address()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_targ_address_b()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_dataref()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_ref_address()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_unsigned_const()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_signed_const()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_reference()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_flag()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_AT_string()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;br /&gt;
We always use DW_FORM_strp &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Expression Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_new_expr()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_expr_gen()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_expr_addr()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_expr_addr_b()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_expr_current_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_expr_into_block()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Line Number Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_line_entry()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lne_set_address()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_lne_end_sequence()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_directory_decl()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_file_decl()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arange Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_arange()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_arange_b()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pubnames Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_pubname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Weaknames Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_weakname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Static Function Name Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_funcname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;User-defined Type Name Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_typename()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Static Variable Name Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_varname()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Macro Info Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_def_macro()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_undef_macro()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_start_macro_file()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_end_macro_file()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_vendor_ext()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Frame Info Creation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_new_fde()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_frame_cie()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_frame_fde()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_frame_fde_b()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_frame_info()&lt;/code&gt;&lt;br /&gt;
N&lt;br /&gt;
SGI libdwarf MIPS extension? &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_frame_info_b()&lt;/code&gt;&lt;br /&gt;
N&lt;br /&gt;
SGI libdwarf MIPS extension? &lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_fde_cfa_offset()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dwarf_add_fde_inst()&lt;/code&gt;&lt;br /&gt;
Y&lt;br /&gt;
N&lt;br /&gt;
N&lt;br /&gt;
Y&lt;/p&gt;
&lt;h2 id="references"&gt;References&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://dwarfstd.org/" rel="nofollow"&gt;Dwarf Standards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="http://reality.sgiweb.org/davea/dwarf.html" rel="nofollow"&gt;SGI/DA libdwarf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="" href="https://fedorahosted.org/elfutils/" rel="nofollow"&gt;elfutils&lt;/a&gt; has also implemented a libdwarf. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Joseph Koshy</dc:creator><pubDate>Wed, 25 Dec 2013 07:30:48 -0000</pubDate><guid>https://sourceforge.netd3463c0bbeab48508d8acdb962667438bfc717aa</guid></item></channel></rss>