summaryrefslogtreecommitdiff
path: root/rtld_db/NOTES
blob: 7dbd310297aed3dc861b5ebaf0b963f6b75f87ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
Sun docs:

  http://docs.sun.com/app/docs/doc/819-2245/rtld-db-3ext
  http://docs.sun.com/app/docs/doc/819-0690/chapter6-12

The rtld_db library exports a number of functions:

  rd_err_e rd_init (int version)

    Initializes rtld_db.

  rd_agent_t * rd_new (struct ps_prochandle *php)

    Creates a new agent. The php value is a user-defined context that will be
    passed to all ps_* calls (see below).

  void rd_delete (struct rd_agent *rdap)

    Deletes agent rdap.

  rd_err_e rd_reset (struct rd_agent *rdap)

    Resets agent rdap back to its initial state; generally called when a
    process is restarted.

  rd_event_addr

  rd_event_enable

  rd_event_getmsg

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

    Calls cb for each loaded object/module in a process agent rdap. clnt_data
    is passed to the callback cb.

  void rd_log (const int onoff)

    Enables or disable rtld_db logging.

  rd_objpad_enable

  rd_plt_resolution

  rd_err_e rd_get_dyns (rd_agent_t *rdap, psaddr_t addr, void **dynpp, size_t *dynpp_sz)

    Gets the dynamic section at Ehdr addr and copies the data and size into
    *dynpp and *dynpp_sz.

The rtld_db library expects those functions found in proc_service.h to be
defined and exported by the user of rtld_db. It's expected that a 64-bit
librtld_db be able to handle debugging of both 64-bit and 32-bit executables.