DWARF_GET_LOCLIST_ENTRY(3) | Library Functions Manual | DWARF_GET_LOCLIST_ENTRY(3) |
dwarf_get_loclist_entry
—
#include <libdwarf.h>
int
dwarf_get_loclist_entry
(Dwarf_Debug
dbg, Dwarf_Unsigned offset,
Dwarf_Addr *hipc, Dwarf_Addr
*lopc, Dwarf_Ptr *data,
Dwarf_Unsigned *entry_len,
Dwarf_Unsigned *next_entry,
Dwarf_Error *err);
dwarf_get_loclist_entry
() retrieves a location
list entry from the DWARF section “.debug_loc”.
Argument dbg should reference a DWARF debug context allocated using dwarf_init(3).
Argument offset is an offset, relative to the “.debug_loc” section, to the start of the desired location list entry.
Argument hipc should point to a location which will hold the offset, relative to the base address of the location list entry, of the highest program counter value for the entry.
Argument lowpc should point to a location which will hold the offset, relative to the base address of the location list entry, of the lowest program counter value for the entry.
Argument data should point to a location which will be set to a pointer to the location list data.
Argument entry_len should point to a location which will hold the length in bytes of the location list data returned in argument data.
Argument next_entry should point to a location which will hold the offset of the next location list entry.
If argument err is not
NULL
, it will be used to store error information in
case of an error.
dwarf_get_loclist_entry
() returns
DW_DLV_OK
when it succeeds. It returns
DW_DLV_NO_ENTRY
if there is no location list at the
specified offset offset. In case of an error, it returns
DW_DLV_ERROR
and sets the argument
err.
Dwarf_Debug dbg; Dwarf_Unsigned off, len, next; Dwarf_Addr hipc, lopc; Dwarf_Ptr data; Dwarf_Error de; int ret; off = 0; while ((ret = dwarf_get_loclist_entry(dbg, off, &hipc, &lopc, &data, &len, &next, &de)) == DW_DLV_OK) { /* ... use loclist entry ... */ off = next; } if (ret == DW_DLV_ERROR) warnx("dwarf_get_loclist_entry failed: %s", dwarf_errmsg(de));
dwarf_get_loclist_entry
() can fail with:
DW_DLE_ARGUMENT
]NULL
.DW_DLE_NO_ENTRY
]July 6, 2011 | NetBSD 10.1 |