DWARF_ADD_EXPR_ADDR(3)
πΈ NAME πΈ
dwarf_add_expr_addr, dwarf_add_expr_addr_b β add a DW_OP_addr location expression π
hiii bestie π welcome to the DWARF_ADD_EXPR_ADDR(3) page from the Library Functions Manual β yes, that's the manual name, and we're doing iconic DWARF business today β¨.
π LIBRARY π
DWARF Access Library β that's libdwarf, and you link it with -ldwarf π«Ά
β¨ SYNOPSIS β¨
okay so copy-paste this exactly, bestie:
#include <libdwarf.h>
Dwarf_Unsigned
dwarf_add_expr_addr(Dwarf_P_Expr expr, Dwarf_Unsigned address,
Dwarf_Signed sym_index, Dwarf_Error *err);
Dwarf_Unsigned
dwarf_add_expr_addr_b(Dwarf_P_Expr expr, Dwarf_Unsigned address,
Dwarf_Unsigned sym_index, Dwarf_Error *err);
π DESCRIPTION π
okay so dwarf_add_expr_addr_b() is the main character here π: it adds a DW_OP_addr location expression to the location expression descriptor referenced by argument expr.
Argument expr should reference a location expression descriptor allocated using the function dwarf_new_expr(3) β don't just make one out of vibes, bestie π§.
Argument address specifies the operand, a relocatable address value π«.
Argument sym_index specifies the ELF symbol index of the symbol to be used for relocation π―.
If argument err is not NULL, it will be used to store error information in case of an error π₯².
Now the tea β: function dwarf_add_expr_addr() is deprecated. It is similar to function dwarf_add_expr_addr_b() except that it cannot handle all possible symbol index values β so that's the catch, no cap π.
π¦ RETURN VALUES π¦
On success, these functions return the size in bytes of the location expression byte stream generated β yes, bytes, not vibes π.
In case of an error, these functions return DW_DLV_NOCOUNT and set the argument err π.
π₯ ERRORS π₯
These functions can fail with:
[DW_DLE_ARGUMENT]β ArgumentexprwasNULL.[DW_DLE_MEMORY]β An out of memory condition was encountered during the execution of the function.
π SEE ALSO π
dwarf(3), dwarf_add_AT_location_expr(3), dwarf_add_expr_gen(3), dwarf_expr_current_offset(3), dwarf_expr_into_block(3), dwarf_new_expr(3)
mwah π this page came from Debian, dated September 9, 2011 β bye bestie, go slay those location expressions πβ¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: libdwarf 15.0.0
- Copyright (c) 2011 Kai Wang
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms