GDB (xrefs)
|
#include "defs.h"
#include "gdbcore.h"
#include "gdbthread.h"
#include "inferior.h"
#include "objfiles.h"
#include "observer.h"
#include "regcache.h"
#include "solib.h"
#include "solist.h"
#include "symfile.h"
#include "target.h"
#include "gdb_assert.h"
#include "gdb_obstack.h"
#include "bsd-uthread.h"
Go to the source code of this file.
#define BSD_UTHREAD_PS_DEAD 18 |
Definition at line 105 of file bsd-uthread.c.
Referenced by bsd_uthread_thread_alive().
#define BSD_UTHREAD_PS_RUNNING 0 |
Definition at line 104 of file bsd-uthread.c.
#define BSD_UTHREAD_PTHREAD_MAGIC 0xd09ba115 |
Definition at line 89 of file bsd-uthread.c.
Referenced by bsd_uthread_check_magic(), and bsd_uthread_wait().
void _initialize_bsd_uthread | ( | void | ) |
Definition at line 548 of file bsd-uthread.c.
References bsd_uthread_inferior_created(), bsd_uthread_init(), bsd_uthread_solib_loaded(), bsd_uthread_solib_unloaded(), bsd_uthread_target(), complete_target_initialization(), gdbarch_data_register_pre_init(), observer_attach_inferior_created(), observer_attach_solib_loaded(), and observer_attach_solib_unloaded().
static int bsd_uthread_activate | ( | struct objfile * | objfile | ) | [static] |
Definition at line 162 of file bsd-uthread.c.
References bsd_uthread_lookup_address(), bsd_uthread_lookup_offset(), gdbarch_data(), push_target(), bsd_uthread_ops::supply_uthread, and target_gdbarch().
Referenced by bsd_uthread_inferior_created(), and bsd_uthread_solib_loaded().
static void bsd_uthread_check_magic | ( | CORE_ADDR | addr | ) | [static] |
Definition at line 94 of file bsd-uthread.c.
References _, BSD_UTHREAD_PTHREAD_MAGIC, error(), gdbarch_byte_order(), read_memory_unsigned_integer(), target_gdbarch(), and ULONGEST.
Referenced by bsd_uthread_fetch_registers(), bsd_uthread_store_registers(), and bsd_uthread_thread_alive().
static void bsd_uthread_close | ( | void | ) | [static] |
Definition at line 207 of file bsd-uthread.c.
Referenced by bsd_uthread_target().
static void bsd_uthread_deactivate | ( | void | ) | [static] |
Definition at line 221 of file bsd-uthread.c.
References unpush_target().
Referenced by bsd_uthread_mourn_inferior(), and bsd_uthread_solib_unloaded().
static char* bsd_uthread_extra_thread_info | ( | struct thread_info * | info | ) | [static] |
Definition at line 485 of file bsd-uthread.c.
References bsd_uthread_thread_state_offset, gdbarch_byte_order(), offset, thread_info::ptid, ptid_get_tid(), read_memory_unsigned_integer(), target_gdbarch(), and ULONGEST.
Referenced by bsd_uthread_target().
static void bsd_uthread_fetch_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regnum | ||
) | [static] |
Definition at line 283 of file bsd-uthread.c.
References target_ops::beneath, bsd_uthread_check_magic(), bsd_uthread_read_memory_address(), find_target_beneath(), gdbarch_data(), get_regcache_arch(), inferior_ptid, ptid_get_tid(), bsd_uthread_ops::supply_uthread, and target_ops::to_fetch_registers.
Referenced by bsd_uthread_target().
static void bsd_uthread_find_new_threads | ( | struct target_ops * | ops | ) | [static] |
Definition at line 430 of file bsd-uthread.c.
References add_thread(), bsd_uthread_read_memory_address(), bsd_uthread_thread_next_offset, in_thread_list(), inferior_ptid, is_exited(), offset, ptid_build(), ptid_get_pid(), ptid_get_tid(), and thread_change_ptid().
Referenced by bsd_uthread_target().
static void bsd_uthread_inferior_created | ( | struct target_ops * | ops, |
int | from_tty | ||
) | [static] |
Definition at line 231 of file bsd-uthread.c.
References bsd_uthread_activate().
Referenced by _initialize_bsd_uthread().
static void* bsd_uthread_init | ( | struct obstack * | obstack | ) | [static] |
Definition at line 56 of file bsd-uthread.c.
References OBSTACK_ZALLOC.
Referenced by _initialize_bsd_uthread().
static CORE_ADDR bsd_uthread_lookup_address | ( | const char * | name, |
struct objfile * | objfile | ||
) | [static] |
Definition at line 126 of file bsd-uthread.c.
References lookup_minimal_symbol(), and SYMBOL_VALUE_ADDRESS.
Referenced by bsd_uthread_activate(), and bsd_uthread_lookup_offset().
static int bsd_uthread_lookup_offset | ( | const char * | name, |
struct objfile * | objfile | ||
) | [static] |
Definition at line 138 of file bsd-uthread.c.
References bsd_uthread_lookup_address(), gdbarch_byte_order(), read_memory_unsigned_integer(), and target_gdbarch().
Referenced by bsd_uthread_activate().
static void bsd_uthread_mourn_inferior | ( | struct target_ops * | ops | ) | [static] |
Definition at line 275 of file bsd-uthread.c.
References target_ops::beneath, bsd_uthread_deactivate(), find_target_beneath(), and target_ops::to_mourn_inferior.
Referenced by bsd_uthread_target().
static char* bsd_uthread_pid_to_str | ( | struct target_ops * | ops, |
ptid_t | ptid | ||
) | [static] |
Definition at line 504 of file bsd-uthread.c.
References normal_pid_to_str(), ptid_get_pid(), ptid_get_tid(), and xsnprintf().
Referenced by bsd_uthread_target().
static CORE_ADDR bsd_uthread_read_memory_address | ( | CORE_ADDR | addr | ) | [static] |
Definition at line 151 of file bsd-uthread.c.
References builtin_type::builtin_data_ptr, builtin_type(), read_memory_typed_address(), and target_gdbarch().
Referenced by bsd_uthread_fetch_registers(), bsd_uthread_find_new_threads(), bsd_uthread_store_registers(), and bsd_uthread_wait().
static void bsd_uthread_resume | ( | struct target_ops * | ops, |
ptid_t | ptid, | ||
int | step, | ||
enum gdb_signal | sig | ||
) | [static] |
Definition at line 399 of file bsd-uthread.c.
References target_ops::beneath, find_target_beneath(), and target_ops::to_resume.
Referenced by bsd_uthread_target().
void bsd_uthread_set_collect_uthread | ( | struct gdbarch * | gdbarch, |
void(*)(const struct regcache *, int, CORE_ADDR) | collect_uthread | ||
) |
Definition at line 80 of file bsd-uthread.c.
References bsd_uthread_ops::collect_uthread, and gdbarch_data().
Referenced by amd64fbsd_init_abi(), amd64obsd_init_abi(), i386fbsdaout_init_abi(), i386obsd_init_abi(), sparc32obsd_init_abi(), and sparc64obsd_init_abi().
void bsd_uthread_set_supply_uthread | ( | struct gdbarch * | gdbarch, |
void(*)(struct regcache *, int, CORE_ADDR) | supply_uthread | ||
) |
Definition at line 68 of file bsd-uthread.c.
References gdbarch_data(), and bsd_uthread_ops::supply_uthread.
Referenced by amd64fbsd_init_abi(), amd64obsd_init_abi(), i386fbsdaout_init_abi(), i386obsd_init_abi(), sparc32obsd_init_abi(), and sparc64obsd_init_abi().
static void bsd_uthread_solib_loaded | ( | struct so_list * | so | ) | [static] |
Definition at line 245 of file bsd-uthread.c.
References bsd_uthread_activate(), bsd_uthread_solib_names, so_list::objfile, so_list::so_original_name, and solib_read_symbols().
Referenced by _initialize_bsd_uthread().
static void bsd_uthread_solib_unloaded | ( | struct so_list * | so | ) | [static] |
Definition at line 265 of file bsd-uthread.c.
References bsd_uthread_deactivate(), and so_list::so_original_name.
Referenced by _initialize_bsd_uthread().
static void bsd_uthread_store_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regnum | ||
) | [static] |
Definition at line 310 of file bsd-uthread.c.
References target_ops::beneath, bsd_uthread_check_magic(), bsd_uthread_read_memory_address(), bsd_uthread_ops::collect_uthread, find_target_beneath(), gdbarch_data(), get_regcache_arch(), inferior_ptid, ptid_get_tid(), and target_ops::to_store_registers.
Referenced by bsd_uthread_target().
static struct target_ops* bsd_uthread_target | ( | void | ) | [static, read] |
Definition at line 519 of file bsd-uthread.c.
References bsd_uthread_close(), bsd_uthread_extra_thread_info(), bsd_uthread_fetch_registers(), bsd_uthread_find_new_threads(), bsd_uthread_mourn_inferior(), bsd_uthread_pid_to_str(), bsd_uthread_resume(), bsd_uthread_store_registers(), bsd_uthread_thread_alive(), bsd_uthread_wait(), bsd_uthread_xfer_partial(), OPS_MAGIC, thread_stratum, target_ops::to_close, target_ops::to_doc, target_ops::to_extra_thread_info, target_ops::to_fetch_registers, target_ops::to_find_new_threads, target_ops::to_longname, target_ops::to_magic, target_ops::to_mourn_inferior, target_ops::to_pid_to_str, target_ops::to_resume, target_ops::to_shortname, target_ops::to_store_registers, target_ops::to_stratum, target_ops::to_thread_alive, target_ops::to_wait, target_ops::to_xfer_partial, and XZALLOC.
Referenced by _initialize_bsd_uthread().
static int bsd_uthread_thread_alive | ( | struct target_ops * | ops, |
ptid_t | ptid | ||
) | [static] |
Definition at line 408 of file bsd-uthread.c.
References target_ops::beneath, bsd_uthread_check_magic(), BSD_UTHREAD_PS_DEAD, bsd_uthread_thread_state_offset, find_target_beneath(), gdbarch_byte_order(), inferior_ptid, offset, ptid_get_tid(), read_memory_unsigned_integer(), target_gdbarch(), target_ops::to_thread_alive, and ULONGEST.
Referenced by bsd_uthread_target().
static ptid_t bsd_uthread_wait | ( | struct target_ops * | ops, |
ptid_t | ptid, | ||
struct target_waitstatus * | status, | ||
int | options | ||
) | [static] |
Definition at line 349 of file bsd-uthread.c.
References add_thread(), target_ops::beneath, BSD_UTHREAD_PTHREAD_MAGIC, bsd_uthread_read_memory_address(), extract_unsigned_integer(), find_target_beneath(), gdbarch_byte_order(), in_thread_list(), inferior_ptid, is_exited(), target_waitstatus::kind, ptid_build(), ptid_get_pid(), ptid_get_tid(), target_gdbarch(), target_read_memory(), TARGET_WAITKIND_EXITED, TARGET_WAITKIND_SIGNALLED, thread_change_ptid(), target_ops::to_wait, and ULONGEST.
Referenced by bsd_uthread_target().
static LONGEST bsd_uthread_xfer_partial | ( | struct target_ops * | ops, |
enum target_object | object, | ||
const char * | annex, | ||
gdb_byte * | readbuf, | ||
const gdb_byte * | writebuf, | ||
ULONGEST | offset, | ||
LONGEST | len | ||
) | [static] |
Definition at line 338 of file bsd-uthread.c.
References target_ops::beneath, gdb_assert, and target_ops::to_xfer_partial.
Referenced by bsd_uthread_target().
Referenced by initialize_all_files().
int bsd_uthread_active [static] |
Definition at line 123 of file bsd-uthread.c.
struct gdbarch_data* bsd_uthread_data [static] |
Definition at line 44 of file bsd-uthread.c.
struct target_ops* bsd_uthread_ops_hack [static] |
Definition at line 38 of file bsd-uthread.c.
const char* bsd_uthread_solib_name [static] |
Definition at line 120 of file bsd-uthread.c.
const char* bsd_uthread_solib_names[] [static] |
{ "/usr/lib/libc_r.so", "/usr/lib/libpthread.so", NULL }
Definition at line 237 of file bsd-uthread.c.
Referenced by bsd_uthread_solib_loaded().
char* bsd_uthread_state[] [static] |
{ "RUNNING", "SIGTHREAD", "MUTEX_WAIT", "COND_WAIT", "FDLR_WAIT", "FDLW_WAIT", "FDR_WAIT", "FDW_WAIT", "FILE_WAIT", "POLL_WAIT", "SELECT_WAIT", "SLEEP_WAIT", "WAIT_WAIT", "SIGSUSPEND", "SIGWAIT", "SPINBLOCK", "JOIN", "SUSPENDED", "DEAD", "DEADLOCK" }
Definition at line 457 of file bsd-uthread.c.
int bsd_uthread_thread_ctx_offset [static] |
Definition at line 117 of file bsd-uthread.c.
CORE_ADDR bsd_uthread_thread_list_addr [static] |
Definition at line 112 of file bsd-uthread.c.
int bsd_uthread_thread_next_offset = -1 [static] |
Definition at line 116 of file bsd-uthread.c.
Referenced by bsd_uthread_find_new_threads().
CORE_ADDR bsd_uthread_thread_run_addr [static] |
Definition at line 109 of file bsd-uthread.c.
int bsd_uthread_thread_state_offset = -1 [static] |
Definition at line 115 of file bsd-uthread.c.
Referenced by bsd_uthread_extra_thread_info(), and bsd_uthread_thread_alive().