DWARF_ADD_FRAME_FDE(3) Library Functions Manual DWARF_ADD_FRAME_FDE(3)

dwarf_add_frame_fde
add a call frame descriptor to a DWARF producer instance

DWARF Access Library (libdwarf, -ldwarf)

#include <libdwarf.h>

Dwarf_Unsigned
dwarf_add_frame_fde(Dwarf_P_Debug dbg, Dwarf_P_Fde fde, Dwarf_P_Die die, Dwarf_Unsigned cie, Dwarf_Addr virt_addr, Dwarf_Unsigned code_len, Dwarf_Unsigned symbol_index, Dwarf_Error *err);

Dwarf_Unsigned
dwarf_add_frame_fde_b(Dwarf_P_Debug dbg, Dwarf_P_Fde fde, Dwarf_P_Die die, Dwarf_Unsigned cie, Dwarf_Addr virt_addr, Dwarf_Unsigned code_len, Dwarf_Unsigned symbol_index, Dwarf_Unsigned end_symbol_index, Dwarf_Addr offset_from_end_sym, Dwarf_Error *err);

Function dwarf_add_frame_fde_b() adds the call frame descriptor referenced by argument fde to a producer instance.

Argument dbg should reference a DWARF producer instance allocated using dwarf_producer_init(3) or dwarf_producer_init_b(3).

Argument fde should reference a frame descriptor allocated using dwarf_new_fde(3).

Argument die is ignored by this implementation of the DWARF Access Library (libdwarf, -ldwarf).

Argument cie specifies the index of call frame common information entry for the frame descriptor. Valid indices are those returned by the function dwarf_add_frame_cie(3).

Argument symbol_index specifies the ELF symbol index of the first symbol to be used for relocation.

The meaning of the arguments virt_addr, code_len and offset_from_end_sym depend on the value of argument end_symbol_index:

If argument err is not NULL, it will be used to store error information in case of an error.

Function dwarf_add_frame_fde() is similar to function dwarf_add_frame_fde_b() except that it supports only one relocation symbol.

On success, these functions return the index value for the added frame descriptor. In case of an error, these functions return DW_DLV_NOCOUNT and set the argument err.

These functions can fail with:
[]
One of the arguments dbg or fde was NULL.
[]
The frame descriptor referenced by argument fde did not belong to the producer instance referenced by argument dbg.
[]
The common information entry index specified by argument cie was invalid.
[]
Argument end_symbol_index was non-zero, but the flag DW_DLC_SYMBOLIC_RELOCATIONS was not set on the producer instance.

dwarf(3), dwarf_add_fde_inst(3), dwarf_add_frame_cie(3), dwarf_fde_cfa_offset(3), dwarf_get_relocation_info(3), dwarf_new_fde(3), dwarf_producer_init(3), dwarf_producer_init_b(3)
September 26, 2011 NetBSD 9.2