GDB (xrefs)
Macros | Functions | Variables
/tmp/gdb-8.1/gdb/nto-procfs.c File Reference
#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 <sys/auxv.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"
#include "common/filestuff.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, enum bptype, int, int)
 
static int procfs_insert_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type type, struct expression *cond)
 
static int procfs_remove_hw_watchpoint (struct target_ops *self, CORE_ADDR addr, int len, enum target_hw_bp_type 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)
 
static void procfs_pidlist (const char *args, int from_tty)
 
static void procfs_meminfo (const char *args, int from_tty)
 
static void procfs_files_info (struct target_ops *ignore)
 
static char * procfs_pid_to_exec_file (struct target_ops *ops, const int pid)
 
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_handle_sigint_twice (int signo)
 
static void nto_handle_sigint (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, enum remove_bp_reason reason)
 
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, const char *exec_file, const std::string &allargs, char **env, int from_tty)
 
static void procfs_interrupt (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)
 
static 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 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, enum target_hw_bp_type type)
 

Variables

int ctl_fd
 
static sighandler_t ofunc
 
static procfs_run run
 
static char * nodestr
 
static unsigned nto_procfs_node = ND_LOCAL_NODE
 
static struct target_ops nto_procfs_ops
 
static struct target_opsnto_native_ops
 

Macro Definition Documentation

◆ _DEBUG_FLAG_TRACE

#define _DEBUG_FLAG_TRACE
Value:
(_DEBUG_FLAG_TRACE_EXEC|_DEBUG_FLAG_TRACE_RD|\
_DEBUG_FLAG_TRACE_WR|_DEBUG_FLAG_TRACE_MODIFY)

Definition at line 48 of file nto-procfs.c.

Referenced by procfs_wait().

◆ NULL_PID

#define NULL_PID   0

Definition at line 47 of file nto-procfs.c.

◆ OSTYPE_NTO

#define OSTYPE_NTO   1

Definition at line 1520 of file nto-procfs.c.

Function Documentation

◆ _initialize_procfs()

void _initialize_procfs ( void  )

◆ breakup_args()

static void breakup_args ( char *  scratch,
char **  argv 
)
static

Definition at line 1100 of file nto-procfs.c.

References gdb::argv.

Referenced by procfs_create_inferior().

◆ do_attach()

static ptid_t do_attach ( ptid_t  ptid)
static

◆ do_closedir_cleanup()

static void do_closedir_cleanup ( void *  dir)
static

Definition at line 342 of file nto-procfs.c.

Referenced by procfs_pidlist().

◆ get_regset()

static int get_regset ( int  regset,
char *  buf,
int  bufsize,
int *  regsize 
)
static

Definition at line 1296 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().

◆ init_procfs_targets()

static void init_procfs_targets ( void  )
static

Definition at line 1467 of file nto-procfs.c.

References add_target(), inf_child_target(), nto_extra_thread_info(), nto_native_ops, 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_interrupt(), procfs_kill_inferior(), procfs_mourn_inferior(), procfs_native_open(), procfs_open(), procfs_pass_signals(), procfs_pid_to_exec_file(), procfs_pid_to_str(), procfs_post_attach(), procfs_remove_breakpoint(), procfs_remove_hw_breakpoint(), procfs_remove_hw_watchpoint(), procfs_resume(), 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_interrupt, 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_exec_file, 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_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().

◆ interrupt_query()

static void interrupt_query ( void  )
static

Definition at line 710 of file nto-procfs.c.

References _, inferior_ptid, query(), quit(), and target_mourn_inferior().

Referenced by nto_handle_sigint_twice().

◆ nto_handle_sigint()

static void nto_handle_sigint ( int  signo)
static

Definition at line 730 of file nto-procfs.c.

References inferior_ptid, nto_handle_sigint_twice(), and target_interrupt().

Referenced by procfs_wait().

◆ nto_handle_sigint_twice()

static void nto_handle_sigint_twice ( int  signo)
static

Definition at line 722 of file nto-procfs.c.

References interrupt_query(), and ofunc.

Referenced by nto_handle_sigint().

◆ nto_node()

static unsigned nto_node ( void  )
static

◆ procfs_attach()

static void procfs_attach ( struct target_ops ops,
const char *  args,
int  from_tty 
)
static

◆ procfs_breakpoint()

static int procfs_breakpoint ( CORE_ADDR  addr,
int  type,
int  size 
)
static

◆ procfs_can_run()

static int procfs_can_run ( struct target_ops self)
static

Definition at line 1437 of file nto-procfs.c.

Referenced by init_procfs_targets().

◆ procfs_can_use_hw_breakpoint()

static int procfs_can_use_hw_breakpoint ( struct target_ops self,
enum bptype  type,
int  cnt,
int  othertype 
)
static

Definition at line 1580 of file nto-procfs.c.

Referenced by init_procfs_targets().

◆ procfs_create_inferior()

static void procfs_create_inferior ( struct target_ops ops,
const char *  exec_file,
const std::string allargs,
char **  env,
int  from_tty 
)
static

◆ procfs_detach()

static void procfs_detach ( struct target_ops ops,
const char *  args,
int  from_tty 
)
static

◆ procfs_fetch_registers()

static void procfs_fetch_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static

◆ procfs_files_info()

static void procfs_files_info ( struct target_ops ignore)
static

◆ procfs_hw_watchpoint()

static int procfs_hw_watchpoint ( int  addr,
int  len,
enum target_hw_bp_type  type 
)
static

Definition at line 1550 of file nto-procfs.c.

References _, ctl_fd, hw_access, and hw_read.

Referenced by procfs_insert_hw_watchpoint(), and procfs_remove_hw_watchpoint().

◆ procfs_insert_breakpoint()

static int procfs_insert_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

◆ procfs_insert_hw_breakpoint()

static int procfs_insert_hw_breakpoint ( struct target_ops self,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

◆ procfs_insert_hw_watchpoint()

static int procfs_insert_hw_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

Definition at line 1597 of file nto-procfs.c.

References procfs_hw_watchpoint().

Referenced by init_procfs_targets().

◆ procfs_interrupt()

static void procfs_interrupt ( struct target_ops self,
ptid_t  ptid 
)
static

Definition at line 1282 of file nto-procfs.c.

References ctl_fd.

Referenced by init_procfs_targets().

◆ procfs_is_nto_target()

static enum gdb_osabi procfs_is_nto_target ( bfd *  abfd)
static

Definition at line 102 of file nto-procfs.c.

References GDB_OSABI_QNXNTO.

Referenced by _initialize_procfs(), and procfs_open_1().

◆ procfs_kill_inferior()

static void procfs_kill_inferior ( struct target_ops ops)
static

Definition at line 1288 of file nto-procfs.c.

References inferior_ptid, and target_mourn_inferior().

Referenced by init_procfs_targets().

◆ procfs_meminfo()

static void procfs_meminfo ( const char *  args,
int  from_tty 
)
static

Definition at line 450 of file nto-procfs.c.

References ctl_fd, err, flags, memset(), name, offset, phex(), printf_filtered(), safe_strerror(), size, xfree(), and XNEWVEC.

Referenced by _initialize_procfs().

◆ procfs_mourn_inferior()

static void procfs_mourn_inferior ( struct target_ops ops)
static

◆ procfs_native_open()

static void procfs_native_open ( const char *  arg,
int  from_tty 
)
static

Definition at line 1459 of file nto-procfs.c.

References nto_native_ops, and procfs_open_1().

Referenced by init_procfs_targets().

◆ procfs_open()

static void procfs_open ( const char *  arg,
int  from_tty 
)
static

Definition at line 1451 of file nto-procfs.c.

References nto_procfs_ops, and procfs_open_1().

Referenced by init_procfs_targets().

◆ procfs_open_1()

static void procfs_open_1 ( struct target_ops ops,
const char *  arg,
int  from_tty 
)
static

◆ procfs_pass_signals()

static void procfs_pass_signals ( struct target_ops self,
int  numsigs,
unsigned char *  pass_signals 
)
static

Definition at line 1394 of file nto-procfs.c.

References gdb_signal_from_host(), and run.

Referenced by init_procfs_targets().

◆ procfs_pid_to_exec_file()

static char* procfs_pid_to_exec_file ( struct target_ops ops,
const int  pid 
)
static

Definition at line 609 of file nto-procfs.c.

References nodestr, pid, and read().

Referenced by init_procfs_targets().

◆ procfs_pid_to_str()

static char* procfs_pid_to_str ( struct target_ops ops,
ptid_t  ptid 
)
static

Definition at line 1410 of file nto-procfs.c.

References pid, ptid_get_pid(), ptid_get_tid(), and selftests::ptid::tid.

Referenced by init_procfs_targets().

◆ procfs_pidlist()

static void procfs_pidlist ( const char *  args,
int  from_tty 
)
static

◆ procfs_post_attach()

static void procfs_post_attach ( struct target_ops self,
pid_t  pid 
)
static

Definition at line 671 of file nto-procfs.c.

References exec_bfd, and solib_create_inferior_hook().

Referenced by init_procfs_targets().

◆ procfs_remove_breakpoint()

static int procfs_remove_breakpoint ( struct target_ops ops,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt,
enum remove_bp_reason  reason 
)
static

Definition at line 992 of file nto-procfs.c.

References bp_target_info::placed_address, and procfs_breakpoint().

Referenced by init_procfs_targets().

◆ procfs_remove_hw_breakpoint()

static int procfs_remove_hw_breakpoint ( struct target_ops self,
struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
)
static

Definition at line 1009 of file nto-procfs.c.

References bp_target_info::placed_address, and procfs_breakpoint().

Referenced by init_procfs_targets().

◆ procfs_remove_hw_watchpoint()

static int procfs_remove_hw_watchpoint ( struct target_ops self,
CORE_ADDR  addr,
int  len,
enum target_hw_bp_type  type,
struct expression cond 
)
static

Definition at line 1588 of file nto-procfs.c.

References procfs_hw_watchpoint().

Referenced by init_procfs_targets().

◆ procfs_resume()

static void procfs_resume ( struct target_ops ops,
ptid_t  ptid,
int  step,
enum gdb_signal  signo 
)
static

◆ procfs_set_thread()

static void procfs_set_thread ( ptid_t  ptid)
static

◆ procfs_stopped_by_watchpoint()

static int procfs_stopped_by_watchpoint ( struct target_ops ops)
static

◆ procfs_store_registers()

static void procfs_store_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static

◆ procfs_thread_alive()

static int procfs_thread_alive ( struct target_ops ops,
ptid_t  ptid 
)
static

Definition at line 221 of file nto-procfs.c.

References ctl_fd, err, pid, ptid_get_pid(), ptid_get_tid(), status, and selftests::ptid::tid.

Referenced by init_procfs_targets().

◆ procfs_update_thread_list()

static void procfs_update_thread_list ( struct target_ops ops)
static

◆ procfs_wait()

static ptid_t procfs_wait ( struct target_ops ops,
ptid_t  ptid,
struct target_waitstatus ourstatus,
int  options 
)
static

◆ procfs_xfer_memory()

static enum target_xfer_status procfs_xfer_memory ( gdb_byte readbuf,
const gdb_byte writebuf,
ULONGEST  memaddr,
ULONGEST  len,
ULONGEST xfered_len 
)
static

Definition at line 872 of file nto-procfs.c.

References ctl_fd, read(), SEEK_SET, TARGET_XFER_E_IO, and TARGET_XFER_OK.

Referenced by procfs_xfer_partial().

◆ procfs_xfer_partial()

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

◆ update_thread_private_data()

static void update_thread_private_data ( struct thread_info new_thread,
pthread_t  tid,
int  state,
int  flags 
)
static

◆ update_thread_private_data_name()

static void update_thread_private_data_name ( struct thread_info new_thread,
const char *  newname 
)
static

Variable Documentation

◆ ctl_fd

int ctl_fd

◆ nodestr

char* nodestr
static

◆ nto_native_ops

struct target_ops* nto_native_ops
static

Definition at line 1446 of file nto-procfs.c.

Referenced by init_procfs_targets(), and procfs_native_open().

◆ nto_procfs_node

unsigned nto_procfs_node = ND_LOCAL_NODE
static

Definition at line 79 of file nto-procfs.c.

Referenced by nto_node(), procfs_create_inferior(), and procfs_open_1().

◆ nto_procfs_ops

struct target_ops nto_procfs_ops
static

Definition at line 1443 of file nto-procfs.c.

Referenced by init_procfs_targets(), and procfs_open().

◆ ofunc

sighandler_t ofunc
static

◆ run

procfs_run run
static