dwarf_transform_to_disk_form —
transform DWARF information into byte
streams
DWARF Access Library (libdwarf, -ldwarf)
#include
<libdwarf.h>
Dwarf_Signed
dwarf_transform_to_disk_form(
Dwarf_P_Debug
dbg,
Dwarf_Error *err);
Function
dwarf_transform_to_disk_form() transforms
the DWARF information gathered by the producer into byte streams for the
application to write out as ELF sections. If the flag
DW_DLC_SYMBOLIC_RELOCATIONS
is set on the
producer, the function will also generate the associated relocation arrays.
Argument
dbg should reference a DWARF producer
instance allocated using
dwarf_producer_init(3)
or
dwarf_producer_init_b(3).
If argument
err is not NULL, it will be used to
store error information in case of an error.
After a call to this function, the application can call the function
dwarf_get_section_bytes(3)
to retrieve the byte streams for each ELF section. If the flag
DW_DLC_SYMBOLIC_RELOCATIONS
was set on the
descriptor, the application can also call the function
dwarf_get_relocation_info(3)
to retrieve the generated relocation arrays.
On success, function
dwarf_transform_to_disk_form()
returns the total number of ELF sections generated. In case of an error,
function
dwarf_transform_to_disk_form() returns
DW_DLV_NOCOUNT
and sets the argument
err.
Function
dwarf_transform_to_disk_form() can fail
with:
-
-
- [
DW_DLE_ARGUMENT
]
- Argument dbg was
NULL.
-
-
- [
DW_DLE_MEMORY
]
- An out of memory condition was encountered during
execution.
dwarf(3),
dwarf_get_relocation_info(3),
dwarf_get_section_bytes(3),
dwarf_producer_init(3),
dwarf_producer_init_b(3)