DWARF_GET_ARANGE_INFO(3)

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

πŸ’– DWARF_GET_ARANGE_INFO(3) πŸ’–

okay bestie, welcome to the DWARF_GET_ARANGE_INFO(3) page from the Library Functions Manual β€” yes, that's the manual name folded in like a cute little crown πŸ‘‘. This one is all about pulling address range info out of a descriptor, and it's lowkey iconic.


🌸 NAME 🌸

dwarf_get_arange_info β€” extract address range information from a descriptor ✨

πŸ¦‹ LIBRARY πŸ¦‹

DWARF Access Library (libdwarf, -ldwarf) πŸ’…

πŸŽ€ SYNOPSIS πŸŽ€

       #include <libdwarf.h>

       int
       dwarf_get_arange_info(Dwarf_Arange ar, Dwarf_Addr *start,
           Dwarf_Unsigned *length, Dwarf_Off *cu_die_offset, Dwarf_Error *err);

✨ DESCRIPTION ✨

okay so dwarf_get_arange_info() is the function that extracts address range information from a Dwarf_Arange descriptor. slay.

  • ar β€” should reference a valid Dwarf_Arange descriptor returned by function dwarf_get_aranges(3).
  • start β€” should point to a location which will hold the start value of the address range associated with the descriptor.
  • length β€” should point to a location which will hold the length in bytes of the address range associated with the descriptor.
  • cu_die_offset β€” should point to a location which will be set to an offset, relative to the .debug_info section, of the first debugging information entry in the compilation unit associated with argument ar.
  • err β€” if this argument is not NULL, it will be used to store error information in case of an error.

πŸ’€ RETURN VALUES πŸ’€

Function dwarf_get_arange_info() returns DW_DLV_OK when it succeeds. In case of an error, it returns DW_DLV_ERROR and sets the argument err.

🌈 EXAMPLES 🌈

To loop through all the address lookup table entries, use:

             Dwarf_Debug dbg;
             Dwarf_Addr start;
             Dwarf_Arange *aranges;
             Dwarf_Off die_off;
             Dwarf_Signed i, cnt;
             Dwarf_Unsigned length;
             Dwarf_Error de;

             if (dwarf_get_aranges(dbg, &aranges, &cnt, &de) != DW_DLV_OK)
                     errx(EXIT_FAILURE, "dwarf_get_aranges: %s",
                         dwarf_errmsg(de));
             for (i = 0; i < cnt; i++) {
                     if (dwarf_get_arange_info(aranges[i], &start, &length,
                         &die_off, &de) != DW_DLV_OK) {
                             warnx("dwarf_get_arange_info: %s",
                                 dwarf_errmsg(de));
                             continue;
                     }
                     /* Do something with the returned information. */
             }

πŸ™ˆ ERRORS πŸ™ˆ

Function dwarf_get_arange_info() can fail with:

  • [DW_DLE_ARGUMENT] β€” one of the arguments ar, start, length or cu_die_offset was NULL.

🫢 SEE ALSO 🫢


πŸ’– source/version: Debian Β· date: April 16, 2011 β€” that's the cute sign-off, bestie, byeee 🫢✨

πŸ“¦ where this page comes from