GDB (xrefs)
|
#include "defs.h"
#include <fcntl.h>
#include <spawn.h>
#include <sys/debug.h>
#include <sys/procfs.h>
#include <sys/neutrino.h>
#include <sys/syspage.h>
#include <dirent.h>
#include <sys/netmgr.h>
#include "gdbcore.h"
#include "inferior.h"
#include "target.h"
#include "objfiles.h"
#include "gdbthread.h"
#include "nto-tdep.h"
#include "command.h"
#include "regcache.h"
#include "solib.h"
#include "inf-child.h"
Go to the source code of this file.
Macros | |
#define | NULL_PID 0 |
#define | _DEBUG_FLAG_TRACE |
#define | OSTYPE_NTO 1 |
Functions | |
static ptid_t | do_attach (ptid_t ptid) |
static int | procfs_can_use_hw_breakpoint (struct target_ops *self, int, int, int) |
static int | procfs_insert_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, int type, struct expression *cond) |
static int | procfs_remove_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, int type, struct expression *cond) |
static int | procfs_stopped_by_watchpoint (struct target_ops *ops) |
static unsigned | nto_node (void) |
static enum gdb_osabi | procfs_is_nto_target (bfd *abfd) |
static void | procfs_open_1 (struct target_ops *ops, const char *arg, int from_tty) |
static void | procfs_set_thread (ptid_t ptid) |
static int | procfs_thread_alive (struct target_ops *ops, ptid_t ptid) |
static void | update_thread_private_data_name (struct thread_info *new_thread, const char *newname) |
static void | update_thread_private_data (struct thread_info *new_thread, pthread_t tid, int state, int flags) |
static void | procfs_update_thread_list (struct target_ops *ops) |
static void | do_closedir_cleanup (void *dir) |
void | procfs_pidlist (char *args, int from_tty) |
void | procfs_meminfo (char *args, int from_tty) |
static void | procfs_files_info (struct target_ops *ignore) |
static void | procfs_attach (struct target_ops *ops, const char *args, int from_tty) |
static void | procfs_post_attach (struct target_ops *self, pid_t pid) |
static void | interrupt_query (void) |
static void | nto_interrupt_twice (int signo) |
static void | nto_interrupt (int signo) |
static ptid_t | procfs_wait (struct target_ops *ops, ptid_t ptid, struct target_waitstatus *ourstatus, int options) |
static void | procfs_fetch_registers (struct target_ops *ops, struct regcache *regcache, int regno) |
static enum target_xfer_status | procfs_xfer_memory (gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST memaddr, ULONGEST len, ULONGEST *xfered_len) |
static enum target_xfer_status | procfs_xfer_partial (struct target_ops *ops, enum target_object object, const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) |
static void | procfs_detach (struct target_ops *ops, const char *args, int from_tty) |
static int | procfs_breakpoint (CORE_ADDR addr, int type, int size) |
static int | procfs_insert_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
static int | procfs_remove_breakpoint (struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
static int | procfs_insert_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
static int | procfs_remove_hw_breakpoint (struct target_ops *self, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt) |
static void | procfs_resume (struct target_ops *ops, ptid_t ptid, int step, enum gdb_signal signo) |
static void | procfs_mourn_inferior (struct target_ops *ops) |
static void | breakup_args (char *scratch, char **argv) |
static void | procfs_create_inferior (struct target_ops *ops, char *exec_file, char *allargs, char **env, int from_tty) |
static void | procfs_stop (struct target_ops *self, ptid_t ptid) |
static void | procfs_kill_inferior (struct target_ops *ops) |
static int | get_regset (int regset, char *buf, int bufsize, int *regsize) |
void | procfs_store_registers (struct target_ops *ops, struct regcache *regcache, int regno) |
static void | procfs_pass_signals (struct target_ops *self, int numsigs, unsigned char *pass_signals) |
static struct tidinfo * | procfs_thread_info (pid_t pid, short tid) |
static char * | procfs_pid_to_str (struct target_ops *ops, ptid_t ptid) |
static int | procfs_can_run (struct target_ops *self) |
static void | procfs_open (const char *arg, int from_tty) |
static void | procfs_native_open (const char *arg, int from_tty) |
static void | init_procfs_targets (void) |
void | _initialize_procfs (void) |
static int | procfs_hw_watchpoint (int addr, int len, int type) |
Variables | |
int | ctl_fd |
static void(* | ofunc )() |
static procfs_run | run |
static char | nto_procfs_path [PATH_MAX] = { "/proc" } |
static unsigned | nto_procfs_node = ND_LOCAL_NODE |
static struct target_ops | nto_procfs_ops |
static struct target_ops * | nto_native_ops |
#define _DEBUG_FLAG_TRACE |
Definition at line 45 of file nto-procfs.c.
Referenced by procfs_wait().
#define NULL_PID 0 |
Definition at line 44 of file nto-procfs.c.
#define OSTYPE_NTO 1 |
Definition at line 1467 of file nto-procfs.c.
void _initialize_procfs | ( | void | ) |
Definition at line 1470 of file nto-procfs.c.
References _, add_info(), init_procfs_targets(), nto_cpuinfo_flags, nto_cpuinfo_valid, nto_is_nto_target, procfs_is_nto_target(), procfs_meminfo(), procfs_pidlist(), and run.
|
static |
Definition at line 1043 of file nto-procfs.c.
Referenced by procfs_create_inferior().
Definition at line 647 of file nto-procfs.c.
References _, ctl_fd, error(), nto_init_solib_absolute_prefix(), nto_node(), nto_procfs_path, ptid_build(), ptid_get_pid(), safe_strerror(), and status.
Referenced by procfs_attach(), and procfs_create_inferior().
|
static |
Definition at line 349 of file nto-procfs.c.
Referenced by procfs_pidlist().
Definition at line 1238 of file nto-procfs.c.
References ctl_fd, NTO_REG_ALT, NTO_REG_FLOAT, NTO_REG_GENERAL, and NTO_REG_SYSTEM.
Referenced by procfs_store_registers().
|
static |
Definition at line 1415 of file nto-procfs.c.
References add_target(), inf_child_target(), nto_extra_thread_info(), nto_procfs_ops, procfs_attach(), procfs_can_run(), procfs_can_use_hw_breakpoint(), procfs_create_inferior(), procfs_detach(), procfs_fetch_registers(), procfs_files_info(), procfs_insert_breakpoint(), procfs_insert_hw_breakpoint(), procfs_insert_hw_watchpoint(), procfs_kill_inferior(), procfs_mourn_inferior(), procfs_native_open(), procfs_open(), procfs_pass_signals(), procfs_pid_to_str(), procfs_post_attach(), procfs_remove_breakpoint(), procfs_remove_hw_breakpoint(), procfs_remove_hw_watchpoint(), procfs_resume(), procfs_stop(), procfs_stopped_by_watchpoint(), procfs_store_registers(), procfs_thread_alive(), procfs_update_thread_list(), procfs_wait(), procfs_xfer_partial(), target_ops::to_attach, target_ops::to_can_run, target_ops::to_can_use_hw_breakpoint, target_ops::to_create_inferior, target_ops::to_detach, target_ops::to_doc, target_ops::to_extra_thread_info, target_ops::to_fetch_registers, target_ops::to_files_info, target_ops::to_have_continuable_watchpoint, target_ops::to_insert_breakpoint, target_ops::to_insert_hw_breakpoint, target_ops::to_insert_watchpoint, target_ops::to_kill, target_ops::to_longname, target_ops::to_mourn_inferior, target_ops::to_open, target_ops::to_pass_signals, target_ops::to_pid_to_str, target_ops::to_post_attach, target_ops::to_remove_breakpoint, target_ops::to_remove_hw_breakpoint, target_ops::to_remove_watchpoint, target_ops::to_resume, target_ops::to_shortname, target_ops::to_stop, target_ops::to_stopped_by_watchpoint, target_ops::to_store_registers, target_ops::to_thread_alive, target_ops::to_update_thread_list, target_ops::to_wait, and target_ops::to_xfer_partial.
Referenced by _initialize_procfs().
|
static |
Definition at line 679 of file nto-procfs.c.
References _, query(), quit(), target_mourn_inferior(), target_terminal_inferior(), and target_terminal_ours().
Referenced by nto_interrupt_twice().
|
static |
Definition at line 703 of file nto-procfs.c.
References inferior_ptid, nto_interrupt_twice(), and target_stop().
Referenced by procfs_wait().
|
static |
Definition at line 695 of file nto-procfs.c.
References interrupt_query(), and ofunc.
Referenced by nto_interrupt().
|
static |
Definition at line 81 of file nto-procfs.c.
References _, error(), nto_procfs_node, and nto_procfs_path.
Referenced by do_attach(), procfs_create_inferior(), procfs_detach(), procfs_mourn_inferior(), and procfs_resume().
|
static |
Definition at line 604 of file nto-procfs.c.
References _, inferior::attach_flag, current_inferior(), do_attach(), error(), gdb_flush(), gdb_stdout, get_exec_file(), arm-linux::inf, inferior_appeared(), inferior_ptid, parse_pid_to_attach(), pid, pid_to_ptid(), printf_unfiltered(), procfs_update_thread_list(), push_target(), target_is_pushed(), and target_pid_to_str().
Referenced by init_procfs_targets().
Definition at line 914 of file nto-procfs.c.
References ctl_fd, size, and type.
Referenced by procfs_insert_breakpoint(), procfs_insert_hw_breakpoint(), procfs_remove_breakpoint(), and procfs_remove_hw_breakpoint().
|
static |
Definition at line 1385 of file nto-procfs.c.
Referenced by init_procfs_targets().
|
static |
Definition at line 1527 of file nto-procfs.c.
Referenced by init_procfs_targets().
|
static |
Definition at line 1095 of file nto-procfs.c.
References _, inferior::attach_flag, breakup_args(), ctl_fd, current_inferior(), do_attach(), err, error(), exec_bfd, flags, get_exec_file(), get_inferior_io_terminal(), arm-linux::inf, inferior_appeared(), inferior_ptid, nto_node(), nto_parse_redirection(), nto_procfs_node, pid, pid_to_ptid(), procfs_update_thread_list(), push_target(), safe_strerror(), solib_create_inferior_hook(), symfile_objfile, target_is_pushed(), target_terminal_init(), xfree(), and xmalloc().
Referenced by init_procfs_targets().
|
static |
Definition at line 883 of file nto-procfs.c.
References ctl_fd, detach_inferior(), gdb_flush(), gdb_stdout, get_exec_file(), inf_child_maybe_unpush_target(), inferior_ptid, init_thread_list(), nto_node(), null_ptid, pid, printf_unfiltered(), ptid_get_pid(), and target_pid_to_str().
Referenced by init_procfs_targets().
|
static |
Definition at line 815 of file nto-procfs.c.
References ctl_fd, inferior_ptid, nto_supply_altregset, nto_supply_fpregset, nto_supply_gregset, and procfs_set_thread().
Referenced by init_procfs_targets().
|
static |
Definition at line 593 of file nto-procfs.c.
References inferior::attach_flag, current_inferior(), inferior_ptid, nto_procfs_path, printf_unfiltered(), and target_pid_to_str().
Referenced by init_procfs_targets().
Definition at line 1497 of file nto-procfs.c.
References _, ctl_fd, and len.
Referenced by procfs_insert_hw_watchpoint(), and procfs_remove_hw_watchpoint().
|
static |
Definition at line 928 of file nto-procfs.c.
References bp_target_info::placed_address, procfs_breakpoint(), and bp_target_info::reqstd_address.
Referenced by init_procfs_targets().
|
static |
Definition at line 943 of file nto-procfs.c.
References bp_target_info::placed_address, procfs_breakpoint(), and bp_target_info::reqstd_address.
Referenced by init_procfs_targets().
|
static |
Definition at line 1542 of file nto-procfs.c.
References procfs_hw_watchpoint().
Referenced by init_procfs_targets().
|
static |
Definition at line 96 of file nto-procfs.c.
References GDB_OSABI_QNXNTO.
Referenced by _initialize_procfs(), and procfs_open_1().
|
static |
Definition at line 1230 of file nto-procfs.c.
References target_mourn_inferior().
Referenced by init_procfs_targets().
void procfs_meminfo | ( | char * | args, |
int | from_tty | ||
) |
Definition at line 447 of file nto-procfs.c.
References ctl_fd, err, flags, min, name, offset, phex(), printf_filtered(), safe_strerror(), size, xfree(), and xmalloc().
Referenced by _initialize_procfs().
|
static |
Definition at line 1022 of file nto-procfs.c.
References ctl_fd, inf_child_mourn_inferior(), inferior_ptid, init_thread_list(), nto_node(), null_ptid, ptid_equal(), and ptid_get_pid().
Referenced by init_procfs_targets().
Definition at line 1407 of file nto-procfs.c.
References procfs_open_1().
Referenced by init_procfs_targets().
Definition at line 1399 of file nto-procfs.c.
References nto_procfs_ops, and procfs_open_1().
Referenced by init_procfs_targets().
|
static |
Definition at line 106 of file nto-procfs.c.
References _, cleanup::arg, do_cleanups(), error(), gdbarch_bfd_arch_info(), inf_child_open_target(), init_thread_list(), make_cleanup_close(), nto_is_nto_target, nto_map_arch_to_cputype(), nto_procfs_node, nto_procfs_path, printf_filtered(), procfs_is_nto_target(), safe_strerror(), target_gdbarch(), target_preopen(), and xfree().
Referenced by procfs_native_open(), and procfs_open().
|
static |
Definition at line 1335 of file nto-procfs.c.
References gdb_signal_from_host(), and run.
Referenced by init_procfs_targets().
|
static |
Definition at line 1358 of file nto-procfs.c.
References pid, procfs_thread_info(), ptid_get_pid(), and ptid_get_tid().
Referenced by init_procfs_targets().
void procfs_pidlist | ( | char * | args, |
int | from_tty | ||
) |
Definition at line 355 of file nto-procfs.c.
References do_cleanups(), do_closedir_cleanup(), fprintf_unfiltered(), gdb_stderr, make_cleanup(), make_cleanup_close(), name, nto_procfs_path, pid, printf_filtered(), safe_strerror(), and status.
Referenced by _initialize_procfs().
|
static |
Definition at line 640 of file nto-procfs.c.
References exec_bfd, and solib_create_inferior_hook().
Referenced by init_procfs_targets().
|
static |
Definition at line 936 of file nto-procfs.c.
References bp_target_info::placed_address, and procfs_breakpoint().
Referenced by init_procfs_targets().
|
static |
Definition at line 952 of file nto-procfs.c.
References bp_target_info::placed_address, and procfs_breakpoint().
Referenced by init_procfs_targets().
|
static |
Definition at line 1534 of file nto-procfs.c.
References procfs_hw_watchpoint().
Referenced by init_procfs_targets().
|
static |
Definition at line 961 of file nto-procfs.c.
References _, ctl_fd, gdb_signal_to_host(), inferior_ptid, minus_one_ptid, nto_node(), null_ptid, procfs_set_thread(), ptid_equal(), ptid_get_pid(), run, and status.
Referenced by init_procfs_targets().
|
static |
Definition at line 204 of file nto-procfs.c.
References ctl_fd, and ptid_get_tid().
Referenced by procfs_fetch_registers(), procfs_resume(), and procfs_store_registers().
|
static |
Definition at line 1224 of file nto-procfs.c.
References ctl_fd.
Referenced by init_procfs_targets().
|
static |
Definition at line 1550 of file nto-procfs.c.
Referenced by init_procfs_targets().
static void procfs_store_registers | ( | struct target_ops * | ops, |
struct regcache * | regcache, | ||
int | regno | ||
) |
Definition at line 1269 of file nto-procfs.c.
References ctl_fd, err, fprintf_unfiltered(), gdb_stderr, get_regcache_arch(), get_regset(), inferior_ptid, len, NTO_REG_END, NTO_REG_GENERAL, nto_register_area, nto_regset_fill, nto_regset_id, null_ptid, procfs_set_thread(), ptid_equal(), regcache_raw_collect(), and safe_strerror().
Referenced by init_procfs_targets().
|
static |
Definition at line 214 of file nto-procfs.c.
References ctl_fd, err, pid, ptid_get_pid(), ptid_get_tid(), and status.
Referenced by init_procfs_targets().
|
static |
Definition at line 1351 of file nto-procfs.c.
Referenced by procfs_pid_to_str().
|
static |
Definition at line 310 of file nto-procfs.c.
References add_thread(), ctl_fd, find_thread_ptid(), inferior_ptid, new_thread(), pid, prune_threads(), ptid_build(), ptid_get_pid(), thread_info::state, status, private_thread_info::tid, and update_thread_private_data().
Referenced by init_procfs_targets(), procfs_attach(), and procfs_create_inferior().
|
static |
Definition at line 712 of file nto-procfs.c.
References _DEBUG_FLAG_TRACE, ctl_fd, gdb_signal_from_host(), inferior_ptid, target_waitstatus::integer, target_waitstatus::kind, nto_interrupt(), null_ptid, ofunc, ptid_build(), ptid_equal(), ptid_get_pid(), target_waitstatus::sig, status, TARGET_WAITKIND_EXITED, TARGET_WAITKIND_SIGNALLED, TARGET_WAITKIND_SPURIOUS, TARGET_WAITKIND_STOPPED, target_waitstatus::value, WEXITSTATUS, and WNOHANG.
Referenced by init_procfs_targets().
|
static |
Definition at line 842 of file nto-procfs.c.
References ctl_fd, read(), SEEK_SET, TARGET_XFER_E_IO, and TARGET_XFER_OK.
Referenced by procfs_xfer_partial().
|
static |
Definition at line 863 of file nto-procfs.c.
References target_ops::beneath, procfs_xfer_memory(), TARGET_OBJECT_MEMORY, and target_ops::to_xfer_partial.
Referenced by init_procfs_targets().
|
static |
Definition at line 272 of file nto-procfs.c.
References ctl_fd, private_thread_info::flags, gdb_assert, thread_info::priv, private_thread_info::state, private_thread_info::tid, and update_thread_private_data_name().
Referenced by procfs_update_thread_list().
|
static |
Definition at line 241 of file nto-procfs.c.
References gdb_assert, name, private_thread_info::name, thread_info::priv, xmalloc(), and xrealloc().
Referenced by update_thread_private_data().
int ctl_fd |
Definition at line 48 of file nto-procfs.c.
Referenced by do_attach(), get_regset(), procfs_breakpoint(), procfs_create_inferior(), procfs_detach(), procfs_fetch_registers(), procfs_hw_watchpoint(), procfs_meminfo(), procfs_mourn_inferior(), procfs_resume(), procfs_set_thread(), procfs_stop(), procfs_store_registers(), procfs_thread_alive(), procfs_update_thread_list(), procfs_wait(), procfs_xfer_memory(), and update_thread_private_data().
|
static |
Definition at line 1394 of file nto-procfs.c.
|
static |
Definition at line 74 of file nto-procfs.c.
Referenced by nto_node(), procfs_create_inferior(), and procfs_open_1().
|
static |
Definition at line 1391 of file nto-procfs.c.
Referenced by init_procfs_targets(), and procfs_open().
|
static |
Definition at line 73 of file nto-procfs.c.
Referenced by do_attach(), nto_node(), procfs_files_info(), procfs_open_1(), and procfs_pidlist().
|
static |
Definition at line 50 of file nto-procfs.c.
Referenced by nto_interrupt_twice(), and procfs_wait().
|
static |
Definition at line 52 of file nto-procfs.c.
Referenced by _initialize_procfs(), env_execute_cli_command(), mi_execute_async_cli_command(), mi_execute_cli_command(), procfs_pass_signals(), and procfs_resume().