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

FreeBSD Manual Pages

  
 
  

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

NAME
     librtld_db	-- library for run-time	linker debugging

LIBRARY
     library "librtld_db"

SYNOPSIS
     #include <rtld_db.h>

     void
     rd_delete(rd_agent_t *rdap);

     char *
     rd_errstr(rd_err_e	rderr);

     rd_err_e
     rd_event_addr(rd_agent_t *rdap, rd_event_e	event, rd_notify_t *notify);

     rd_err_e
     rd_event_enable(rd_agent_t	*rdap, int onoff);

     rd_err_e
     rd_event_getmsg(rd_agent_t	*rdap, rd_event_msg_t *msg);

     rd_err_e
     rd_init(int version);

     typedef int
     rl_iter_f(const rd_loadobj_t *, void *);

     rd_err_e
     rd_loadobj_iter(rd_agent_t	*rdap, rl_iter_f *cb, void *clnt_data);

     void
     rd_log(const int onoff);

     rd_agent_t	*
     rd_new(struct proc_handle *php);

     rd_err_e
     rd_objpad_enable(rd_agent_t *rdap,	size_t padsize);

     rd_err_e
     rd_plt_resolution(rd_agent_t *rdap, uintptr_t pc, struct proc *proc,
	 uintptr_t plt_base, rd_plt_info_t *rpi);

     rd_err_e
     rd_reset(rd_agent_t *rdap);

DESCRIPTION
     The librtld_db library provides a debugging interface to the run-time
     linker (rtld).  This library must be used along with libproc(3).

     Most library functions take a rd_agent_t argument.	 This argument is an
     opaque structure containing information associated	with the current sta-
     tus of the	agent.

     Before you	start using librtld_db you should call rd_init() with the
     RD_VERSION	argument.  This	initializes the	library	to the correct version
     your program was compiled with and	provides proper	ABI stability.

     What follows is a description of what each	function.

     rd_new() creates a	new librtld_db agent.  The php argument	should be the
     proc_handle you received from libproc(3).

     rd_reset()	resets your previously created agent.

     rd_delete() deallocates the resources associated with the agent.

     rd_errstr() returns an error string describing the	error present in
     rderr.

     rd_event_enable() enables reporting of events.  This function always re-
     turns RD_OK.

     rd_event_addr() returns the event address corresponding to	the event pa-
     rameter.  At the moment we	only report events of type RD_NOTIFY_BPT.

     rd_event_getmsg() returns the message associated with the latest event.
     At	the moment only	RD_POSTINIT events are supported.

     rd_loadobj_iter() allows you to iterate over the program's	loaded ob-
     jects.  cb	is a callback of type rl_iter_f().

RETURN VALUES
     Most functions return an rd_err_e type error.  The	error codes are	de-
     scribed in	the header file	for this library.  You can get the error
     string using rd_errstr().

SEE ALSO
     ld(1), ld-elf.so.1(1), ld.so(1), rtld(1), libproc(3)

HISTORY
     The librtld_db library first appeared in FreeBSD 9.0 and was modeled af-
     ter the same library present in the Solaris operating system.

AUTHORS
     The librtld_db library and	this manual page were written by Rui Paulo
     <rpaulo@FreeBSD.org> under	sponsorship from the FreeBSD Foundation.

CAVEATS
     The functions rd_event_enable(), rd_log(),	rd_objpad_enable() and
     rd_plt_resolution() are not yet implemented.

BSD				 June 10, 2010				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | SEE ALSO | HISTORY | AUTHORS | CAVEATS

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

home | help