---
name: "dwarf_get_fde_range"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/dwarf_get_fde_range"
---

# dwarf\_get\_fde\_range(3)

retrieve range information from an FDE descriptor

## NAME

**dwarf\_get\_fde\_range** – retrieve range information from an FDE descriptor

## LIBRARY

library “libdwarf”

## SYNOPSIS

**#include \<libdwarf.h\>**

*int*\

**dwarf\_get\_fde\_range**(*Dwarf\_Fde fde*, *Dwarf\_Addr \*low\_pc*, *Dwarf\_Unsigned \*func\_len*, *Dwarf\_Ptr \*fde\_bytes*, *Dwarf\_Unsigned \*fde\_byte\_len*, *Dwarf\_Off \*cie\_offset*, *Dwarf\_Signed \*cie\_index*, *Dwarf\_Off \*fde\_offset*, *Dwarf\_Error \*err*);

## DESCRIPTION

Function **dwarf\_get\_fde\_range**() retrieves range and offset information from a given FDE descriptor.

Argument *fde* should reference a valid DWARF FDE descriptor.

Argument *low\_pc* should point to a location that will be set to the lowest program counter address covered by the FDE descriptor.

Argument *func\_len* should point to a location that will hold the length in bytes of the address range covered by the FDE descriptor.

Argument *fde\_bytes* should point to a location that will be set to a pointer to the content of the FDE descriptor itself.

Argument *fde\_byte\_len* should point to a location that will hold the length in bytes of the FDE descriptor itself.

Argument *cie\_offset* should point to a location that will be set to the offset, relative to the DWARF “.debug\_frame” section, of the CIE descriptor associated with the given FDE descriptor.

Argument *cie\_index* should point to a location that will hold the index of the CIE descriptor associated with the FDE descriptor. The returned value is a zero-based index into the array of CIE descriptors returned by a prior call to functions [dwarf\_get\_fde\_list(3)](/dwarf_get_fde_list/3.md) or [dwarf\_get\_fde\_list\_eh(3)](/dwarf_get_fde_list_eh/3.md).

Argument *fde\_offset* should point to a location that will be set to the offset, relative to the DWARF “.debug\_frame” section, of the FDE descriptor.

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

## RETURN VALUES

Function **dwarf\_get\_fde\_range**() returns DW\_DLV\_OK when it succeeds. In case of an error, it returns DW\_DLV\_ERROR and sets the argument *err*.

## ERRORS

Function **dwarf\_get\_fde\_range**() can fail with:

- \[DW\_DLE\_ARGUMENT\]

  One of the arguments *fde*, *low\_pc*, *func\_len*, *fde\_bytes*, *fde\_byte\_len*, *cie\_offset*, *cie\_index* or *fde\_offset* was NULL.

## SEE ALSO

[dwarf(3)](/dwarf/3.md), [dwarf\_get\_cie\_index(3)](/dwarf_get_cie_index/3.md), [dwarf\_get\_cie\_info(3)](/dwarf_get_cie_info/3.md), [dwarf\_get\_cie\_of\_fde(3)](/dwarf_get_cie_of_fde/3.md), [dwarf\_get\_fde\_at\_pc(3)](/dwarf_get_fde_at_pc/3.md), [dwarf\_get\_fde\_info\_for\_all\_regs(3)](/dwarf_get_fde_info_for_all_regs/3.md), [dwarf\_get\_fde\_info\_for\_all\_regs3(3)](/dwarf_get_fde_info_for_all_regs3/3.md), [dwarf\_get\_fde\_info\_for\_cfa\_reg3(3)](/dwarf_get_fde_info_for_cfa_reg3/3.md), [dwarf\_get\_fde\_info\_for\_reg(3)](/dwarf_get_fde_info_for_reg/3.md), [dwarf\_get\_fde\_info\_for\_reg3(3)](/dwarf_get_fde_info_for_reg3/3.md), [dwarf\_get\_fde\_instr\_bytes(3)](/dwarf_get_fde_instr_bytes/3.md), [dwarf\_get\_fde\_list(3)](/dwarf_get_fde_list/3.md), [dwarf\_get\_fde\_list\_eh(3)](/dwarf_get_fde_list_eh/3.md), [dwarf\_get\_fde\_n(3)](/dwarf_get_fde_n/3.md)
