| LIBRTLD_DB(3) | Library Functions Manual | LIBRTLD_DB(3) | 
librtld_db —
#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);
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 status 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 returns RD_OK.
rd_event_addr() returns the event address
    corresponding to the event parameter. 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 objects. cb is a callback of
    type rl_iter_f().
rd_errstr().
librtld_db library first appeared in
  FreeBSD 9.0 and was modeled after the same library
  present in the Solaris operating system.
librtld_db library and this manual page were written
  by Rui Paulo
  <rpaulo@FreeBSD.org>
  under sponsorship from the FreeBSD Foundation.
rd_event_enable(),
  rd_log(), rd_objpad_enable(),
  and rd_plt_resolution() are not yet implemented.
| June 10, 2010 | NetBSD 9.4 |