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

FreeBSD Manual Pages

  
 
  

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

NAME
     dwarf_get_fde_info_for_all_regs --	retrieve register rule row

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     int
     dwarf_get_fde_info_for_all_regs(Dwarf_Fde fde, Dwarf_Addr pc,
	 Dwarf_Regtable	*reg_table, Dwarf_Addr *row_pc,	Dwarf_Error *err);

DESCRIPTION
     Function dwarf_get_fde_info_for_all_regs()	retrieves a row	from the reg-
     ister rule	table associated with the given	FDE descriptor.

     Argument fde should reference a valid DWARF FDE descriptor.

     Argument pc should	hold the program counter address to be used to locate
     the desired table row.

     Argument reg_table	should point to	a Dwarf_Regtable descriptor which will
     hold the returned table row of register rules.

     Argument row_pc should point to a location	which will be set to the low-
     est program counter address associated with the table row.

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

     The Dwarf_Regtable	descriptor is defined in the header file <libdwarf.h>:

	   typedef struct {
		   struct {
			   Dwarf_Small	   dw_offset_relevant;
			   Dwarf_Half	   dw_regnum;
			   Dwarf_Addr	   dw_offset;
		   } rules[DW_REG_TABLE_SIZE];
	   } Dwarf_Regtable;

     For each of the register rules returned, the dw_offset_relevant field is
     set to 1 if the register rule has a offset	value.	The dw_regnum field is
     set to the	register number	associated with	the regsiter rule.  The
     dw_offset field is	set to the offset value	associated with	the register
     rule.

     The number	of register columns returned is	either the constant value
     DW_REG_TABLE_SIZE as defined in the header	file <libdwarf.h>, or the
     value set by function dwarf_set_frame_rule_table_size(3), whichever is
     smaller.

   COMPATIBILITY
     Function dwarf_get_fde_info_for_all_regs()	is deprecated since it only
     supports DWARF2 frame sections.  Applications should instead use function
     dwarf_get_fde_info_for_all_regs3(3) which supports	both DWARF2 and	DWARF3
     frame sections.

RETURN VALUES
     Function dwarf_get_fde_info_for_all_regs()	returns	DW_DLV_OK when it suc-
     ceeds.  In	case of	an error, it returns DW_DLV_ERROR and sets the argu-
     ment err.

ERRORS
     Function dwarf_get_fde_info_for_all_regs()	can fail with:

     [DW_DLE_ARGUMENT]		   One of the arguments	fde, reg_table or
				   row_pc was NULL.

     [DW_DLE_PC_NOT_IN_FDE_RANGE]  The program counter value provided in argu-
				   ment	pc did not fall	in the range covered
				   by argument fde.

SEE ALSO
     dwarf(3), dwarf_get_fde_at_pc(3), dwarf_get_fde_info_for_all_regs3(3),
     dwarf_get_fde_info_for_cfa_reg3(3), dwarf_get_fde_info_for_reg(3),
     dwarf_get_fde_info_for_reg3(3), dwarf_get_fde_n(3),
     dwarf_set_frame_cfa_value(3), dwarf_set_frame_rule_initial_value(3),
     dwarf_set_frame_rule_table_size(3), dwarf_set_frame_same_value(3),
     dwarf_set_frame_undefined_value(3)

FreeBSD	13.0			 June 4, 2011			  FreeBSD 13.0

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

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

home | help