[Dwarf-discuss] New libdwarf/dwarfdump

David Anderson davea
Fri Jul 22 12:19:39 GMT 2005



A new libdwarf and dwarfdump is on 
	http://reality.sgiweb.org/davea/

The following routines are new in libdwarf.h.
See the libdwarf postscript for details.


The dealloc calls enable complete and correct dealloc, and are simper
to use than pre-existing dealloc.

 .debug_pubtypes support is new.

With a one-line change you can build a fully-checking libdwarf
for testing/debugging your client code (see libdwarf/malloc_check.h
and libdwarf/malloc_check.c for details).

> void dwarf_globals_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Global* /*globals*/,
>     Dwarf_Signed /*number_of_globals*/);

> void dwarf_funcs_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Func* /*funcs*/,
>     Dwarf_Signed /*number_of_funcs*/);

> /* User-defined type name operations, SGI IRIX .debug_typenames section.
>    Same content as DWARF3 .debug_pubtypes, but defined years before
>    .debug_pubtypes was defined.   SGI IRIX only. */

> void dwarf_types_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Type* /*types*/,
>     Dwarf_Signed /*number_of_types*/);



> /* User-defined type name operations, DWARF3  .debug_pubtypes section. 
> */
> int dwarf_get_pubtypes(Dwarf_Debug    /*dbg*/,
>     Dwarf_Type**      /*types*/,
>     Dwarf_Signed *      /*number_of_types*/,
>     Dwarf_Error*      /*error*/);
> void dwarf_pubtypes_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Type* /*pubtypes*/,
>     Dwarf_Signed /*number_of_pubtypes*/);
> 
> 
> int dwarf_pubtypename(Dwarf_Type /*type*/,
>     char   **           /*returned_name*/,
>     Dwarf_Error*      /*error*/);
> 
> int dwarf_pubtype_die_offset(Dwarf_Type /*type*/,
>     Dwarf_Off*          /*return_offset*/,
>     Dwarf_Error*      /*error*/);
> 
> int dwarf_pubtype_cu_offset(Dwarf_Type /*type*/,
>     Dwarf_Off*          /*return_offset*/,
>     Dwarf_Error*      /*error*/);
> 
> int dwarf_pubtype_name_offsets(Dwarf_Type     /*type*/,
>     char   **           /*returned_name*/,
>     Dwarf_Off*                /*die_offset*/,
>     Dwarf_Off*                /*cu_offset*/,
>     Dwarf_Error*      /*error*/);
> 

> void dwarf_vars_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Var* /*vars*/,
>     Dwarf_Signed /*number_of_vars*/);
> 

> void dwarf_weaks_dealloc(Dwarf_Debug /*dbg*/,
>     Dwarf_Weak* /*weaks*/,
>     Dwarf_Signed /*number_of_weaks*/);



> 
> /* Release storage gotten by dwarf_get_fde_list_eh() or
>    dwarf_get_fde_list() */
> void dwarf_fde_cie_list_dealloc(Dwarf_Debug dbg,
>         Dwarf_Cie *cie_data,
>         Dwarf_Signed cie_element_count,
>         Dwarf_Fde *fde_data,
>         Dwarf_Signed fde_element_count);


David Anderson davea at sgi.com




More information about the Dwarf-discuss mailing list