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:
- [
DW_DLE_ARGUMENT]
- One of the arguments dbg or
fde was NULL.
- [
DW_DLE_ARGUMENT]
- The frame descriptor referenced by argument fde did
not belong to the producer instance referenced by argument
dbg.
- [
DW_DLE_ARGUMENT]
- The common information entry index specified by argument
cie was invalid.
- [
DW_DLE_ARGUMENT]
- Argument end_symbol_index was non-zero, but the flag
DW_DLC_SYMBOLIC_RELOCATIONS was not set on the
producer instance.