DWARF_GET_FDE_INSTR_BYTES(3)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– NAME πŸ’–

dwarf_get_fde_instr_bytes β€” retrieve instructions from an FDE descriptor. Bestie, this page is from the Library Functions Manual, and the library is the DWARF Access Library (libdwarf, -ldwarf) ✨

πŸ“š LIBRARY πŸ“š

DWARF Access Library (libdwarf, -ldwarf) 🫢

✨ SYNOPSIS ✨

#include <libdwarf.h>

int
dwarf_get_fde_instr_bytes(Dwarf_Fde fde, Dwarf_Ptr *ret_inst,
    Dwarf_Unsigned *ret_len, Dwarf_Error *error);

🫢 DESCRIPTION 🫢

Okay so, function dwarf_get_fde_instr_bytes() retrieves instruction bytes from a given FDE descriptor. That's the whole vibe πŸ’…

  • fde β€” should reference a valid DWARF FDE descriptor. Like, valid-valid, no cap.
  • ret_inst β€” should point to a location that will be set to a pointer to an array of bytes containing the instructions of the FDE descriptor.
  • ret_len β€” should point to a location that will hold the length in bytes of the instructions returned in argument ret_inst.

If argument err is not NULL, it will be used to store error information in case of an error. (Yes, the synopsis calls this parameter error and the prose calls it err β€” that's just the page's little quirk, bestie πŸŽ€)

Applications can use the function dwarf_expand_frame_instructions(3) to parse and expand the returned instruction bytes into an array of Dwarf_Frame_Op descriptors. It's giving "raw bytes in, structured ops out" πŸ”₯

πŸŽ€ RETURN VALUES πŸŽ€

Function dwarf_get_fde_instr_bytes() 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_instr_bytes() can fail with:

  • [DW_DLE_ARGUMENT] β€” one of the arguments fde, ret_inst or ret_len was NULL.

πŸ”₯ SEE ALSO πŸ”₯

dwarf(3), dwarf_expand_frame_instructions(3), dwarf_get_cie_index(3), dwarf_get_cie_info(3), dwarf_get_cie_of_fde(3), dwarf_get_fde_at_pc(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_list(3), dwarf_get_fde_list_eh(3), dwarf_get_fde_n(3), dwarf_get_fde_range(3) 🌈


xoxo bestie πŸ’– this one's from Debian, dated May 23, 2011, and the footer says DWARF_GET_FDE_INSTR_BYTES(3) βœ¨πŸ‘‘

πŸ“¦ where this page comes from