GDBserver
|
#include <pthread.h>
#include <stdint.h>
#include <sys/types.h>
#include <sys/procfs.h>
Go to the source code of this file.
Classes | |
struct | td_thrhandle |
struct | td_thr_events |
struct | td_notify |
struct | td_event_msg |
struct | td_eventbuf_t |
struct | td_ta_stats |
struct | td_thrinfo |
Macros | |
#define | TD_THR_ANY_USER_FLAGS 0xffffffff |
#define | TD_THR_LOWEST_PRIORITY -20 |
#define | TD_SIGNO_MASK NULL |
#define | TD_EVENTSIZE 2 |
#define | BT_UISHIFT 5 /* log base 2 of BT_NBIPUI, to extract word index */ |
#define | BT_NBIPUI (1 << BT_UISHIFT) /* n bits per uint */ |
#define | BT_UIMASK (BT_NBIPUI - 1) /* to extract bit index */ |
#define | __td_eventmask(n) (UINT32_C (1) << (((n) - 1) & BT_UIMASK)) |
#define | __td_eventword(n) ((UINT32_C ((n) - 1)) >> BT_UISHIFT) |
#define | td_event_emptyset(setp) |
#define | td_event_fillset(setp) |
#define | td_event_addset(setp, n) (((setp)->event_bits[__td_eventword (n)]) |= __td_eventmask (n)) |
#define | td_event_delset(setp, n) (((setp)->event_bits[__td_eventword (n)]) &= ~__td_eventmask (n)) |
#define | td_eventismember(setp, n) (__td_eventmask (n) & ((setp)->event_bits[__td_eventword (n)])) |
#define | td_eventisempty(setp) (!((setp)->event_bits[0]) && !((setp)->event_bits[1])) |
Typedefs | |
typedef struct td_thragent | td_thragent_t |
typedef struct td_thrhandle | td_thrhandle_t |
typedef struct td_thr_events | td_thr_events_t |
typedef struct td_notify | td_notify_t |
typedef struct td_event_msg | td_event_msg_t |
typedef struct td_ta_stats | td_ta_stats_t |
typedef pthread_t | thread_t |
typedef pthread_key_t | thread_key_t |
typedef int | td_thr_iter_f(const td_thrhandle_t *, void *) |
typedef int | td_key_iter_f(thread_key_t, void(*) (void *), void *) |
typedef struct td_thrinfo | td_thrinfo_t |
Enumerations | |
enum | td_err_e { TD_OK , TD_ERR , TD_NOTHR , TD_NOSV , TD_NOLWP , TD_BADPH , TD_BADTH , TD_BADSH , TD_BADTA , TD_BADKEY , TD_NOMSG , TD_NOFPREGS , TD_NOLIBTHREAD , TD_NOEVENT , TD_NOCAPAB , TD_DBERR , TD_NOAPLIC , TD_NOTSD , TD_MALLOC , TD_PARTIALREG , TD_NOXREGS , TD_TLSDEFER , TD_NOTALLOC = TD_TLSDEFER , TD_VERSION , TD_NOTLS } |
enum | td_thr_state_e { TD_THR_ANY_STATE , TD_THR_UNKNOWN , TD_THR_STOPPED , TD_THR_RUN , TD_THR_ACTIVE , TD_THR_ZOMBIE , TD_THR_SLEEP , TD_THR_STOPPED_ASLEEP } |
enum | td_thr_type_e { TD_THR_ANY_TYPE , TD_THR_USER , TD_THR_SYSTEM } |
enum | td_event_e { TD_ALL_EVENTS , TD_EVENT_NONE = TD_ALL_EVENTS , TD_READY , TD_SLEEP , TD_SWITCHTO , TD_SWITCHFROM , TD_LOCK_TRY , TD_CATCHSIG , TD_IDLE , TD_CREATE , TD_DEATH , TD_PREEMPT , TD_PRI_INHERIT , TD_REAP , TD_CONCURRENCY , TD_TIMEOUT , TD_MIN_EVENT_NUM = TD_READY , TD_MAX_EVENT_NUM = TD_TIMEOUT , TD_EVENTS_ENABLE = 31 } |
enum | td_notify_e { NOTIFY_BPT , NOTIFY_AUTOBPT , NOTIFY_SYSCALL } |
#define __td_eventmask | ( | n | ) | (UINT32_C (1) << (((n) - 1) & BT_UIMASK)) |
Definition at line 121 of file glibc_thread_db.h.
#define __td_eventword | ( | n | ) | ((UINT32_C ((n) - 1)) >> BT_UISHIFT) |
Definition at line 123 of file glibc_thread_db.h.
#define BT_NBIPUI (1 << BT_UISHIFT) /* n bits per uint */ |
Definition at line 111 of file glibc_thread_db.h.
#define BT_UIMASK (BT_NBIPUI - 1) /* to extract bit index */ |
Definition at line 112 of file glibc_thread_db.h.
#define BT_UISHIFT 5 /* log base 2 of BT_NBIPUI, to extract word index */ |
Definition at line 110 of file glibc_thread_db.h.
#define td_event_addset | ( | setp, | |
n | |||
) | (((setp)->event_bits[__td_eventword (n)]) |= __td_eventmask (n)) |
Definition at line 140 of file glibc_thread_db.h.
#define td_event_delset | ( | setp, | |
n | |||
) | (((setp)->event_bits[__td_eventword (n)]) &= ~__td_eventmask (n)) |
Definition at line 142 of file glibc_thread_db.h.
#define td_event_emptyset | ( | setp | ) |
Definition at line 126 of file glibc_thread_db.h.
#define td_event_fillset | ( | setp | ) |
Definition at line 133 of file glibc_thread_db.h.
#define td_eventisempty | ( | setp | ) | (!((setp)->event_bits[0]) && !((setp)->event_bits[1])) |
Definition at line 147 of file glibc_thread_db.h.
#define td_eventismember | ( | setp, | |
n | |||
) | (__td_eventmask (n) & ((setp)->event_bits[__td_eventword (n)])) |
Definition at line 144 of file glibc_thread_db.h.
#define TD_EVENTSIZE 2 |
Definition at line 109 of file glibc_thread_db.h.
#define TD_SIGNO_MASK NULL |
Definition at line 106 of file glibc_thread_db.h.
#define TD_THR_ANY_USER_FLAGS 0xffffffff |
Definition at line 104 of file glibc_thread_db.h.
#define TD_THR_LOWEST_PRIORITY -20 |
Definition at line 105 of file glibc_thread_db.h.
typedef struct td_event_msg td_event_msg_t |
typedef int td_key_iter_f(thread_key_t, void(*)(void *), void *) |
Definition at line 250 of file glibc_thread_db.h.
typedef struct td_notify td_notify_t |
typedef struct td_ta_stats td_ta_stats_t |
typedef struct td_thr_events td_thr_events_t |
typedef int td_thr_iter_f(const td_thrhandle_t *, void *) |
Definition at line 247 of file glibc_thread_db.h.
typedef struct td_thragent td_thragent_t |
Definition at line 89 of file glibc_thread_db.h.
typedef struct td_thrhandle td_thrhandle_t |
typedef struct td_thrinfo td_thrinfo_t |
typedef pthread_key_t thread_key_t |
Definition at line 243 of file glibc_thread_db.h.
typedef pthread_t thread_t |
Definition at line 242 of file glibc_thread_db.h.
enum td_err_e |
Definition at line 32 of file glibc_thread_db.h.
enum td_event_e |
Definition at line 154 of file glibc_thread_db.h.
enum td_notify_e |
Enumerator | |
---|---|
NOTIFY_BPT | |
NOTIFY_AUTOBPT | |
NOTIFY_SYSCALL |
Definition at line 178 of file glibc_thread_db.h.
enum td_thr_state_e |
Enumerator | |
---|---|
TD_THR_ANY_STATE | |
TD_THR_UNKNOWN | |
TD_THR_STOPPED | |
TD_THR_RUN | |
TD_THR_ACTIVE | |
TD_THR_ZOMBIE | |
TD_THR_SLEEP | |
TD_THR_STOPPED_ASLEEP |
Definition at line 64 of file glibc_thread_db.h.
enum td_thr_type_e |
Enumerator | |
---|---|
TD_THR_ANY_TYPE | |
TD_THR_USER | |
TD_THR_SYSTEM |
Definition at line 78 of file glibc_thread_db.h.
td_err_e td_init | ( | void | ) |
td_err_e td_log | ( | void | ) |
const char ** td_symbol_list | ( | void | ) |
td_err_e td_ta_clear_event | ( | const td_thragent_t * | __ta, |
td_thr_events_t * | __event | ||
) |
td_err_e td_ta_delete | ( | td_thragent_t * | __ta | ) |
td_err_e td_ta_enable_stats | ( | const td_thragent_t * | __ta, |
int | __enable | ||
) |
td_err_e td_ta_event_addr | ( | const td_thragent_t * | __ta, |
td_event_e | __event, | ||
td_notify_t * | __ptr | ||
) |
td_err_e td_ta_event_getmsg | ( | const td_thragent_t * | __ta, |
td_event_msg_t * | __msg | ||
) |
td_err_e td_ta_get_nthreads | ( | const td_thragent_t * | __ta, |
int * | __np | ||
) |
td_err_e td_ta_get_ph | ( | const td_thragent_t * | __ta, |
struct ps_prochandle ** | __ph | ||
) |
td_err_e td_ta_get_stats | ( | const td_thragent_t * | __ta, |
td_ta_stats_t * | __statsp | ||
) |
td_err_e td_ta_map_id2thr | ( | const td_thragent_t * | __ta, |
pthread_t | __pt, | ||
td_thrhandle_t * | __th | ||
) |
td_err_e td_ta_map_lwp2thr | ( | const td_thragent_t * | __ta, |
lwpid_t | __lwpid, | ||
td_thrhandle_t * | __th | ||
) |
td_err_e td_ta_new | ( | struct ps_prochandle * | __ps, |
td_thragent_t ** | __ta | ||
) |
td_err_e td_ta_reset_stats | ( | const td_thragent_t * | __ta | ) |
td_err_e td_ta_set_event | ( | const td_thragent_t * | __ta, |
td_thr_events_t * | __event | ||
) |
td_err_e td_ta_setconcurrency | ( | const td_thragent_t * | __ta, |
int | __level | ||
) |
td_err_e td_ta_thr_iter | ( | const td_thragent_t * | __ta, |
td_thr_iter_f * | __callback, | ||
void * | __cbdata_p, | ||
td_thr_state_e | __state, | ||
int | __ti_pri, | ||
sigset_t * | __ti_sigmask_p, | ||
unsigned int | __ti_user_flags | ||
) |
td_err_e td_ta_tsd_iter | ( | const td_thragent_t * | __ta, |
td_key_iter_f * | __ki, | ||
void * | __p | ||
) |
td_err_e td_thr_clear_event | ( | const td_thrhandle_t * | __th, |
td_thr_events_t * | __event | ||
) |
td_err_e td_thr_dbresume | ( | const td_thrhandle_t * | __th | ) |
td_err_e td_thr_dbsuspend | ( | const td_thrhandle_t * | __th | ) |
td_err_e td_thr_event_enable | ( | const td_thrhandle_t * | __th, |
int | __event | ||
) |
td_err_e td_thr_event_getmsg | ( | const td_thrhandle_t * | __th, |
td_event_msg_t * | __msg | ||
) |
td_err_e td_thr_get_info | ( | const td_thrhandle_t * | __th, |
td_thrinfo_t * | __infop | ||
) |
td_err_e td_thr_getfpregs | ( | const td_thrhandle_t * | __th, |
prfpregset_t * | __regset | ||
) |
td_err_e td_thr_getgregs | ( | const td_thrhandle_t * | __th, |
prgregset_t | __gregs | ||
) |
td_err_e td_thr_getxregs | ( | const td_thrhandle_t * | __th, |
void * | __xregs | ||
) |
td_err_e td_thr_getxregsize | ( | const td_thrhandle_t * | __th, |
int * | __sizep | ||
) |
td_err_e td_thr_set_event | ( | const td_thrhandle_t * | __th, |
td_thr_events_t * | __event | ||
) |
td_err_e td_thr_setfpregs | ( | const td_thrhandle_t * | __th, |
const prfpregset_t * | __fpregs | ||
) |
td_err_e td_thr_setgregs | ( | const td_thrhandle_t * | __th, |
prgregset_t | __gregs | ||
) |
td_err_e td_thr_setprio | ( | const td_thrhandle_t * | __th, |
int | __prio | ||
) |
td_err_e td_thr_setsigpending | ( | const td_thrhandle_t * | __th, |
unsigned char | __n, | ||
const sigset_t * | __ss | ||
) |
td_err_e td_thr_setxregs | ( | const td_thrhandle_t * | __th, |
const void * | __addr | ||
) |
td_err_e td_thr_sigsetmask | ( | const td_thrhandle_t * | __th, |
const sigset_t * | __ss | ||
) |
td_err_e td_thr_tls_get_addr | ( | const td_thrhandle_t * | __th, |
psaddr_t | __map_address, | ||
size_t | __offset, | ||
psaddr_t * | __address | ||
) |
td_err_e td_thr_tlsbase | ( | const td_thrhandle_t * | __th, |
unsigned long int | __modid, | ||
psaddr_t * | __base | ||
) |
td_err_e td_thr_tsd | ( | const td_thrhandle_t * | __th, |
const thread_key_t | __tk, | ||
void ** | __data | ||
) |
td_err_e td_thr_validate | ( | const td_thrhandle_t * | __th | ) |