GDB (xrefs)
Defines | Functions | Variables
/home/stan/gdb/src/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 "gdb_dirent.h"
#include <sys/netmgr.h>
#include "exceptions.h"
#include "gdb_string.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"

Go to the source code of this file.

Defines

#define NULL_PID   0
#define _DEBUG_FLAG_TRACE
#define OSTYPE_NTO   1

Functions

static void procfs_open (char *, int)
static int procfs_can_run (void)
static int procfs_xfer_memory (CORE_ADDR, gdb_byte *, int, int, struct mem_attrib *attrib, struct target_ops *)
static void init_procfs_ops (void)
static ptid_t do_attach (ptid_t ptid)
static int procfs_can_use_hw_breakpoint (int, int, int)
static int procfs_insert_hw_watchpoint (CORE_ADDR addr, int len, int type, struct expression *cond)
static int procfs_remove_hw_watchpoint (CORE_ADDR addr, int len, int type, struct expression *cond)
static int procfs_stopped_by_watchpoint (void)
static unsigned nto_node (void)
static enum gdb_osabi procfs_is_nto_target (bfd *abfd)
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_find_new_threads (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, char *args, int from_tty)
static void procfs_post_attach (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 void procfs_detach (struct target_ops *ops, char *args, int from_tty)
static int procfs_breakpoint (CORE_ADDR addr, int type, int size)
static int procfs_insert_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int procfs_remove_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int procfs_insert_hw_breakpoint (struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
static int procfs_remove_hw_breakpoint (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 (ptid_t ptid)
static void procfs_kill_inferior (struct target_ops *ops)
static void procfs_prepare_to_store (struct regcache *regcache)
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 (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)
void _initialize_procfs (void)
static int procfs_hw_watchpoint (int addr, int len, int type)

Variables

static struct target_ops procfs_ops
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

Define Documentation

Value:
(_DEBUG_FLAG_TRACE_EXEC|_DEBUG_FLAG_TRACE_RD|\
                _DEBUG_FLAG_TRACE_WR|_DEBUG_FLAG_TRACE_MODIFY)

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

Referenced by procfs_wait().

#define NULL_PID   0

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

#define OSTYPE_NTO   1

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


Function Documentation

void _initialize_procfs ( void  )
static void breakup_args ( char *  scratch,
char **  argv 
) [static]

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

References strchr().

Referenced by procfs_create_inferior().

static ptid_t do_attach ( ptid_t  ptid) [static]
static void do_closedir_cleanup ( void *  dir) [static]

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

Referenced by procfs_pidlist().

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

Definition at line 1239 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 void init_procfs_ops ( void  ) [static]

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

References child_terminal_info(), default_child_has_all_memory(), default_child_has_execution(), default_child_has_memory(), default_child_has_registers(), default_child_has_stack(), target_ops::deprecated_xfer_memory, nto_extra_thread_info(), OPS_MAGIC, process_stratum, procfs_attach(), procfs_can_run(), procfs_can_use_hw_breakpoint(), procfs_create_inferior(), procfs_detach(), procfs_fetch_registers(), procfs_files_info(), procfs_find_new_threads(), procfs_insert_breakpoint(), procfs_insert_hw_breakpoint(), procfs_insert_hw_watchpoint(), procfs_kill_inferior(), procfs_mourn_inferior(), procfs_open(), procfs_ops, procfs_pass_signals(), procfs_pid_to_str(), procfs_post_attach(), procfs_prepare_to_store(), procfs_remove_breakpoint(), procfs_remove_hw_watchpoint(), procfs_resume(), procfs_stop(), procfs_stopped_by_watchpoint(), procfs_store_registers(), procfs_thread_alive(), procfs_wait(), procfs_xfer_memory(), terminal_inferior(), terminal_init_inferior(), terminal_ours(), terminal_ours_for_output(), 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_find_new_threads, target_ops::to_has_all_memory, target_ops::to_has_execution, target_ops::to_has_memory, target_ops::to_has_registers, target_ops::to_has_stack, 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_magic, 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_prepare_to_store, 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_stratum, target_ops::to_terminal_inferior, target_ops::to_terminal_info, target_ops::to_terminal_init, target_ops::to_terminal_ours, target_ops::to_terminal_ours_for_output, target_ops::to_thread_alive, and target_ops::to_wait.

Referenced by _initialize_procfs().

static void interrupt_query ( void  ) [static]
static void nto_interrupt ( int  signo) [static]

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

References inferior_ptid, nto_interrupt_twice(), and target_stop().

Referenced by procfs_wait().

static void nto_interrupt_twice ( int  signo) [static]

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

References interrupt_query(), and ofunc.

Referenced by nto_interrupt().

static unsigned nto_node ( void  ) [static]
static void procfs_attach ( struct target_ops ops,
char *  args,
int  from_tty 
) [static]
static int procfs_breakpoint ( CORE_ADDR  addr,
int  type,
int  size 
) [static]
static int procfs_can_run ( void  ) [static]

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

Referenced by init_procfs_ops().

static int procfs_can_use_hw_breakpoint ( int  type,
int  cnt,
int  othertype 
) [static]

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

Referenced by init_procfs_ops().

static void procfs_create_inferior ( struct target_ops ops,
char *  exec_file,
char *  allargs,
char **  env,
int  from_tty 
) [static]
static void procfs_detach ( struct target_ops ops,
char *  args,
int  from_tty 
) [static]
static void procfs_fetch_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
) [static]
static void procfs_files_info ( struct target_ops ignore) [static]
static void procfs_find_new_threads ( struct target_ops ops) [static]
static int procfs_hw_watchpoint ( int  addr,
int  len,
int  type 
) [static]

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

References _, ctl_fd, and len.

Referenced by procfs_insert_hw_watchpoint(), and procfs_remove_hw_watchpoint().

static int procfs_insert_breakpoint ( struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
) [static]

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

References bp_target_info::placed_address, and procfs_breakpoint().

Referenced by init_procfs_ops().

static int procfs_insert_hw_breakpoint ( struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
) [static]

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

References bp_target_info::placed_address, and procfs_breakpoint().

Referenced by init_procfs_ops().

static int procfs_insert_hw_watchpoint ( CORE_ADDR  addr,
int  len,
int  type,
struct expression cond 
) [static]

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

References procfs_hw_watchpoint().

Referenced by init_procfs_ops().

static enum gdb_osabi procfs_is_nto_target ( bfd *  abfd) [static]

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

References GDB_OSABI_QNXNTO.

Referenced by _initialize_procfs(), and procfs_open().

static void procfs_kill_inferior ( struct target_ops ops) [static]

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

References target_mourn_inferior().

Referenced by init_procfs_ops().

void procfs_meminfo ( char *  args,
int  from_tty 
)
static void procfs_mourn_inferior ( struct target_ops ops) [static]
static void procfs_open ( char *  arg,
int  from_tty 
) [static]
static void procfs_pass_signals ( int  numsigs,
unsigned char *  pass_signals 
) [static]

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

References gdb_signal_from_host(), and run.

Referenced by init_procfs_ops().

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

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

References procfs_thread_info(), ptid_get_pid(), and ptid_get_tid().

Referenced by init_procfs_ops().

void procfs_pidlist ( char *  args,
int  from_tty 
)
static void procfs_post_attach ( pid_t  pid) [static]

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

References exec_bfd, and solib_create_inferior_hook().

Referenced by init_procfs_ops().

static void procfs_prepare_to_store ( struct regcache regcache) [static]

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

Referenced by init_procfs_ops().

static int procfs_remove_breakpoint ( struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
) [static]

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

References bp_target_info::placed_address, and procfs_breakpoint().

Referenced by init_procfs_ops().

static int procfs_remove_hw_breakpoint ( struct gdbarch gdbarch,
struct bp_target_info bp_tgt 
) [static]

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

References bp_target_info::placed_address, and procfs_breakpoint().

static int procfs_remove_hw_watchpoint ( CORE_ADDR  addr,
int  len,
int  type,
struct expression cond 
) [static]

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

References procfs_hw_watchpoint().

Referenced by init_procfs_ops().

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

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

References ctl_fd, and ptid_get_tid().

Referenced by procfs_fetch_registers(), procfs_resume(), and procfs_store_registers().

static void procfs_stop ( ptid_t  ptid) [static]

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

References ctl_fd.

Referenced by init_procfs_ops().

static int procfs_stopped_by_watchpoint ( void  ) [static]

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

Referenced by init_procfs_ops().

static void procfs_store_registers ( struct target_ops ops,
struct regcache regcache,
int  regno 
)
static int procfs_thread_alive ( struct target_ops ops,
ptid_t  ptid 
) [static]

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

References ctl_fd, ptid_get_pid(), ptid_get_tid(), and exsummary::status.

Referenced by init_procfs_ops().

static struct tidinfo* procfs_thread_info ( pid_t  pid,
short  tid 
) [static, read]

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

Referenced by procfs_pid_to_str().

static ptid_t procfs_wait ( struct target_ops ops,
ptid_t  ptid,
struct target_waitstatus ourstatus,
int  options 
) [static]
static int procfs_xfer_memory ( CORE_ADDR  memaddr,
gdb_byte myaddr,
int  len,
int  dowrite,
struct mem_attrib attrib,
struct target_ops target 
) [static]

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

References ctl_fd, and read().

Referenced by init_procfs_ops().

static void update_thread_private_data ( struct thread_info new_thread,
pthread_t  tid,
int  state,
int  flags 
) [static]
static void update_thread_private_data_name ( struct thread_info new_thread,
const char *  newname 
) [static]

Variable Documentation

unsigned nto_procfs_node = ND_LOCAL_NODE [static]

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

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

char nto_procfs_path[PATH_MAX] = { "/proc" } [static]

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

Referenced by do_attach(), nto_node(), procfs_files_info(), procfs_open(), and procfs_pidlist().

void(* ofunc)() [static]

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

Referenced by nto_interrupt_twice(), and procfs_wait().

struct target_ops procfs_ops [static]
procfs_run run [static]
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines