DWARF_LOCLIST_FROM_EXPR(3) | Library Functions Manual | DWARF_LOCLIST_FROM_EXPR(3) |
dwarf_loclist_from_expr
,
dwarf_loclist_from_expr_a
,
dwarf_loclist_from_expr_b
—
#include <libdwarf.h>
int
dwarf_loclist_from_expr
(Dwarf_Debug
dbg, Dwarf_Ptr bytes_in,
Dwarf_Unsigned bytes_len,
Dwarf_Locdesc **llbuf, Dwarf_Signed
*listlen, Dwarf_Error *err);
int
dwarf_loclist_from_expr_a
(Dwarf_Debug
dbg, Dwarf_Ptr bytes_in,
Dwarf_Unsigned bytes_len, Dwarf_Half
addr_size, Dwarf_Locdesc **llbuf,
Dwarf_Signed *listlen, Dwarf_Error
*err);
int
dwarf_loclist_from_expr_b
(Dwarf_Debug
dbg, Dwarf_Ptr bytes_in,
Dwarf_Unsigned bytes_len, Dwarf_Half
addr_size, Dwarf_Half offset_size,
Dwarf_Small version, Dwarf_Locdesc
**llbuf, Dwarf_Signed *listlen,
Dwarf_Error *error);
dwarf_loclist_from_expr
() translates DWARF
location expression bytes into a Dwarf_Locdesc
descriptor. The size for address related data is taken to be the default
address size for the object being read.
Argument dbg should reference a DWARF debug context allocated using dwarf_init(3).
Argument bytes_in should point to an array of DWARF location expression bytes.
Argument bytes_len should specify the number of the location expression bytes to be translated.
Argument llbuf should point to a location which will be set to a pointer to a returned Dwarf_Locdesc descriptor.
Argument listlen should point to a location which will hold the number of the Dwarf_Locdesc descriptors returned. In this case it is always set to 1.
If argument err is not
NULL
, it will be used to store error information in
case of an error.
Function dwarf_loclist_from_expr_a
() is
identical to function dwarf_loclist_from_expr
(),
except that it requires one additional argument
addr_size, which specifies the address size to use
when translating the location expression bytes.
Function dwarf_loclist_from_expr_b
() is
identical to function dwarf_loclist_from_expr_a
()
except that it requires two additional arguments for translating the
location expression bytes. Argument offset_size
specifies the offset size, and argument version
specifies the DWARF version. These values are required to correctly
translate the DW_OP_GNU_implicit_pointer
opcode.
DW_DLA_LOC_BLOCK
.DW_DLA_LOCDESC
.DW_DLV_OK
. In case
of an error, they return DW_DLV_ERROR
and set the
argument err.
DW_DLE_ARGUMENT
]NULL
.DW_DLE_ARGUMENT
]DW_DLE_ARGUMENT
]DW_DLE_LOC_EXPR_BAD
]DW_DLE_MEMORY
]December 21, 2014 | NetBSD 10.0 |