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

FreeBSD Manual Pages

  
 
  

home | help
DWARF_ADD_FRAME_FDE(3)	 BSD Library Functions Manual	DWARF_ADD_FRAME_FDE(3)

NAME
     dwarf_add_frame_fde -- add	a call frame descriptor	to a DWARF producer
     instance

LIBRARY
     DWARF Access Library (libdwarf, -ldwarf)

SYNOPSIS
     #include <libdwarf.h>

     Dwarf_Unsigned
     dwarf_add_frame_fde(Dwarf_P_Debug dbg, Dwarf_P_Fde	fde, Dwarf_P_Die die,
	 Dwarf_Unsigned	cie, Dwarf_Addr	virt_addr, Dwarf_Unsigned code_len,
	 Dwarf_Unsigned	symbol_index, Dwarf_Error *err);

     Dwarf_Unsigned
     dwarf_add_frame_fde_b(Dwarf_P_Debug dbg, Dwarf_P_Fde fde,
	 Dwarf_P_Die die, Dwarf_Unsigned cie, Dwarf_Addr virt_addr,
	 Dwarf_Unsigned	code_len, Dwarf_Unsigned symbol_index,
	 Dwarf_Unsigned	end_symbol_index, Dwarf_Addr offset_from_end_sym,
	 Dwarf_Error *err);

DESCRIPTION
     Function dwarf_add_frame_fde_b() adds the call frame descriptor refer-
     enced by argument fde to a	producer instance.

     Argument dbg should reference a DWARF producer instance allocated using
     dwarf_producer_init(3) or dwarf_producer_init_b(3).

     Argument fde should reference a frame descriptor allocated	using
     dwarf_new_fde(3).

     Argument die is ignored by	this implementation of the DWARF Access
     Library (libdwarf,	-ldwarf).

     Argument cie specifies the	index of call frame common information entry
     for the frame descriptor.	Valid indices are those	returned by the	func-
     tion dwarf_add_frame_cie(3).

     Argument symbol_index specifies the ELF symbol index of the first symbol
     to	be used	for relocation.

     The meaning of the	arguments virt_addr, code_len and offset_from_end_sym
     depend on the value of argument end_symbol_index:

     +o	 If the	argument end_symbol_index is zero, the argument	virt_addr
	 specifies the relocatable address of the start	of the function	asso-
	 ciated	with the frame descriptor, the argument	code_len specifies the
	 size in bytes of the machine instructions for this function, the ar-
	 gument	symbol_index specifies the ELF symbol to be used for relocat-
	 ing the address in argument virt_addr,	and the	argument
	 offset_from_end_symbol	is ignored.

     +o	 If the	argument end_symbol_index is non-zero, it specifies the	ELF
	 symbol	index of the second symbol to be used for relocation.  In this
	 case, the argument virt_addr specifies	an offset from the relocatable
	 symbol	specified by argument symbol_index, the	argument
	 offset_from_end_symbol	should specify an offset from the symbol named
	 by the	argument end_symbol_index, and the argument code_len will be
	 ignored.  The DW_DLC_SYMBOLIC_RELOCATIONS flag	should also have been
	 set on	the DWARF producer instance.

	 Application code can retrieve the relocation entries for the symbol
	 pair by calling function dwarf_get_relocation_info(3).	 The reloca-
	 tion entry for	the first symbol will have type
	 dwarf_drt_first_of_length_pair	and the	relocation entry for the sec-
	 ond symbol will have type dwarf_drt_second_of_length_pair.

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

     Function dwarf_add_frame_fde() is similar to function
     dwarf_add_frame_fde_b() except that it supports only one relocation sym-
     bol.

RETURN VALUES
     On	success, these functions return	the index value	for the	added frame
     descriptor.  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]	One of the arguments dbg or fde	was NULL.

     [DW_DLE_ARGUMENT]	The frame descriptor referenced	by argument fde	did
			not belong to the producer instance referenced by ar-
			gument dbg.

     [DW_DLE_ARGUMENT]	The common information entry index specified by	argu-
			ment cie was invalid.

     [DW_DLE_ARGUMENT]	Argument end_symbol_index was non-zero,	but the	flag
			DW_DLC_SYMBOLIC_RELOCATIONS was	not set	on the pro-
			ducer instance.

SEE ALSO
     dwarf(3), dwarf_add_fde_inst(3), dwarf_add_frame_cie(3),
     dwarf_fde_cfa_offset(3), dwarf_get_relocation_info(3), dwarf_new_fde(3),
     dwarf_producer_init(3), dwarf_producer_init_b(3)

BSD			      September	26, 2011			   BSD

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_add_frame_fde&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help