DWARF_GET_ARANGES(3) | Library Functions Manual | DWARF_GET_ARANGES(3) |
dwarf_get_aranges
—
#include <libdwarf.h>
int
dwarf_get_aranges
(Dwarf_Debug
dbg, Dwarf_Arange **ar_list,
Dwarf_Signed *ar_cnt, Dwarf_Error
*err);
dwarf_get_aranges
() retrieves address range
information from the “.debug_aranges” DWARF section. Information
about address ranges is returned using opaque descriptors of type
Dwarf_Arange,
Argument dbg should reference a DWARF debug context allocated using dwarf_init(3).
Argument ar_list should point to a location which will be set to a pointer to an array of Dwarf_Arange descriptors.
Argument ar_cnt should point to a location which will be set to the number of descriptors returned.
If argument err is not
NULL
, it will be used to store error information in
case of an error.
dwarf_get_aranges
() returns
DW_DLV_OK
when it succeeds. It returns
DW_DLV_NO_ENTRY
if there is no
“.debug_aranges” section associated with the specified debugging
context. In case of an error, it returns DW_DLV_ERROR
and sets the argument err.
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. */ }
dwarf_get_aranges
() can fail with:
DW_DLE_ARGUMENT
]NULL
.DW_DLE_NO_ENTRY
]November 9, 2011 | NetBSD 10.0 |