Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DWARF_GET_LOCLIST_E... FreeBSD Library Functions Manual	DWARF_GET_LOCLIST_E...

NAME
     dwarf_get_loclist_entry --	retrieve DWARF location	list entry

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #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);

DESCRIPTION
     Function 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, rel-
     ative to the base address of the location list entry, of the highest pro-
     gram 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.

RETURN VALUES
     Function 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.

EXAMPLES
     To	iterate	through	all the	location list entries in the ".debug_loc" sec-
     tion, use:

	   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));

ERRORS
     Function dwarf_get_loclist_entry()	can fail with:

     [DW_DLE_ARGUMENT]	One of the arguments dbg, hipc,	lopc, data, entry_len
			or next_entry was NULL.

     [DW_DLE_NO_ENTRY]	There is no location list at the specified offset
			offset.

SEE ALSO
     dwarf(3), dwarf_loclist(3), dwarf_loclist_from_expr(3),
     dwarf_loclist_from_expr_a(3), dwarf_loclist_n(3)

FreeBSD	13.0			 July 6, 2011			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=dwarf_get_loclist_entry&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help