dwarf_get_fde_at_pc —
retrieve the FDE descriptor for an address
DWARF Access Library (libdwarf, -ldwarf)
#include
<libdwarf.h>
int
dwarf_get_fde_at_pc(
Dwarf_Fde
*fdelist,
Dwarf_Addr pc,
Dwarf_Fde *ret_fde,
Dwarf_Addr *lopc,
Dwarf_Addr *hipc,
Dwarf_Error *err);
Function
dwarf_get_fde_at_pc() searches the
provided array of DWARF FDE descriptors for a descriptor covering a given
program counter address.
Argument
fdelist should point to an array of
FDE descriptors, as returned by the functions
dwarf_get_fde_list(3)
or
dwarf_get_fde_list_eh(3).
Argument
pc should contain the program counter
address being looked up.
Argument
ret_fde should point to a location
that will hold the returned FDE descriptor.
Argument
lopc should point to a location that
will be set to the lowest address covered by the returned FDE descriptor.
Argument
hipc should point to a location that
will be set to the highest address covered by the returned FDE descriptor.
If argument
err is not NULL, it will be used to
store error information in case of an error.
Function
dwarf_get_fde_at_pc() returns
DW_DLV_OK
when it succeeds. It returns
DW_DLV_NO_ENTRY
if a FDE descriptor that
covers the address specified by argument
pc
is not found. In case of an error, it returns
DW_DLV_ERROR
and sets the argument
err.
Function
dwarf_get_fde_at_pc() can fail with:
-
-
- [
DW_DLE_ARGUMENT
]
- One of the arguments
fdelist,
ret_fde,
lopc, or
hipc was NULL.
-
-
- [
DW_DLE_NO_ENTRY
]
- These was no FDE descriptor covering the address specified
by argument pc.
dwarf(3),
dwarf_get_cie_of_fde(3),
dwarf_get_fde_info_for_all_regs(3),
dwarf_get_fde_info_for_all_regs3(3),
dwarf_get_fde_info_for_cfa_reg3(3),
dwarf_get_fde_info_for_reg(3),
dwarf_get_fde_info_for_reg3(3),
dwarf_get_fde_instr_bytes(3),
dwarf_get_fde_list(3),
dwarf_get_fde_list_eh(3),
dwarf_get_fde_n(3),
dwarf_get_fde_range(3)