DWARF_LINENO(3)
hiii bestie π welcome to the DWARF_LINENO(3) library-functions-manual page. this is where a DWARF line descriptor (a Dwarf_Line) spills its specific line info into whatever your ret pointer points at. it's giving βtiny getter functions with main character energyβ and honestly? obsessed. β¨
πΈ NAME πΈ
the whole squad, assembled: dwarf_lineaddr, dwarf_linebeginstatement, dwarf_lineblock, dwarf_lineendsequence, dwarf_lineno, dwarf_lineoff, dwarf_linesrc, and dwarf_line_srcfileno. their collective mission is retrieve information associated with a DWARF line descriptor. periodt. π
π LIBRARY π
DWARF Access Library (libdwarf, -ldwarf) β that's the one, bestie. π
π οΈ SYNOPSIS π οΈ
#include <libdwarf.h>
int
dwarf_lineaddr(Dwarf_Line ln, Dwarf_Addr *ret, Dwarf_Error *err);
int
dwarf_linebeginstatement(Dwarf_Line ln, Dwarf_Bool *ret,
Dwarf_Error *err);
int
dwarf_lineblock(Dwarf_Line ln, Dwarf_Bool *ret, Dwarf_Error *err);
int
dwarf_lineendsequence(Dwarf_Line ln, Dwarf_Bool *ret, Dwarf_Error *err);
int
dwarf_lineno(Dwarf_Line ln, Dwarf_Unsigned *ret, Dwarf_Error *err);
int
dwarf_lineoff(Dwarf_Line ln, Dwarf_Signed *ret, Dwarf_Error *err);
int
dwarf_linesrc(Dwarf_Line ln, char **ret, Dwarf_Error *err);
int
dwarf_line_srcfileno(Dwarf_Line ln, Dwarf_Unsigned *ret,
Dwarf_Error *err);
π DESCRIPTION π
okay so the big picture: these functions retrieve specific line information associated with the line descriptor specified by argument ln, and store it in the location pointed to by argument ret. if argument err is not NULL, it will be used to store error information in case of an error. no cap, that's the whole setup. π
dwarf_lineaddr()β stores the program address corresponding to the source line specified in argumentlninto the location pointed to by argumentret. πdwarf_linebeginstatement()β sets the location pointed to by argumentretto1if the source line specified by the line descriptorlnis the beginning of a statement, or to0otherwise. π«Άdwarf_lineblock()β sets the location pointed to by argumentretto1if the source line specified by the line descriptorlnis the beginning of a basic block, or to0otherwise. π§dwarf_lineendsequence()β sets the location pointed to by argumentretto1if the program address associated with the line descriptorlnis the address immediately following the end of a sequence of target machine instructions, or to0otherwise. π₯dwarf_lineno()β stores the line number of the source line associated with the line descriptorlninto the location pointed to by argumentret. βdwarf_lineoff()β stores the column number within a line associated with descriptorlninto the location pointed to by argumentret. the retrieved column numbers are1-based, with the value-1indicating that column number information was not available. πdwarf_linesrc()β stores a pointer to a NUL-terminated string containing the source file name associated with line descriptorlninto the location pointed to by argumentret. the full path of the source file is returned if possible. the memory used for the source file name string is managed by theDWARF(3)library and should not be directly freed by application code. instead, portable code should usedwarf_dealloc(3)to indicate that the string should be freed. πdwarf_line_srcfileno()β stores the index of the source file associated with the line descriptorlnin the location pointed to by argumentret. the returned value is a1-based index into the array of source file names returned bydwarf_srcfiles(3). π
β RETURN VALUES β
on success, these functions return DW_DLV_OK. in case of an error, they return DW_DLV_ERROR and set the argument err. periodt. π
π ERRORS π
these functions may fail with the following errors:
[DW_DLE_ARGUMENT]β either of the argumentslnorretwasNULL. π«[DW_DLE_LINE_FILE_NUM_BAD]β the source file name associated with the line descriptorlncould not be retrieved by functiondwarf_linesrc(). π
π SEE ALSO π
go give these a peek, bestie:
mwah π β source/version: Debian; date: February 5, 2011. now go treat your line descriptors right! π«Ά
π¦ 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