DWARF_FORMEXPRLOC(3)

NAME
dwarf_formexprloc - return information about a location expression

LIBRARY
libdwarf

SYNOPSIS
#include <libdwarf.h>
int
dwarf_formexprloc(Dwarf_Attribute attr, Dwarf_Unsigned *retlen, Dwarf_Ptr *retexpr, Dwarf_Error *err);

DESCRIPTION
Function dwarf_formexprloc() allows an application to retrieve the length and the bytes of a DWARF location expression.

Argument attr should reference a DWARF attribute of the form DW_FORM_exprloc. Argument retlen should point to a location that will be set to the length of the location expression. Argument retexpr should point to a location that will be set to a pointer to the content of the location expression itself.

If argument err is not NULL, it will be used to return an error descriptor in case of an error.

  Memory Management
The application should not attempt to free the memory area referenced by the pointer returned in argument retexpr.

RETURN VALUES
Function dwarf_formexprloc() returns DW_DLV_OK on success. In case of an error, it returns DW_DLV_ERROR and sets argument err.

ERRORS
Function dwarf_formexprloc() may fail with the following errors:

[DW_DLE_ARGUMENT]
    One of arguments attr, retlen or retexpr was NULL.

[DW_DLE_ATTR_FORM_BAD]
    The attribute referenced by argument attr was not of form DW_FORM_exprloc.

SEE ALSO
dwarf(3), dwarf_attr(3), dwarf_formblock(3), dwarf_formflag(3), dwarf_formref(3), dwarf_formsdata(3), dwarf_formsig8(3), dwarf_formstring(3), dwarf_formudata(3), dwarf_hasattr(3)