GDB (xrefs)
Classes | Functions | Variables
/tmp/gdb-8.1/gdb/linux-fork.c File Reference
#include "defs.h"
#include "arch-utils.h"
#include "inferior.h"
#include "infrun.h"
#include "regcache.h"
#include "gdbcmd.h"
#include "infcall.h"
#include "objfiles.h"
#include "linux-fork.h"
#include "linux-nat.h"
#include "gdbthread.h"
#include "source.h"
#include "nat/gdb_ptrace.h"
#include "gdb_wait.h"
#include <dirent.h>
#include <ctype.h>

Go to the source code of this file.

Classes

struct  fork_info
 

Functions

int forks_exist_p (void)
 
static struct fork_infofind_last_fork (void)
 
struct fork_infoadd_fork (pid_t pid)
 
static void free_fork (struct fork_info *fp)
 
static void delete_fork (ptid_t ptid)
 
static struct fork_infofind_fork_ptid (ptid_t ptid)
 
static struct fork_infofind_fork_id (int num)
 
struct fork_infofind_fork_pid (pid_t pid)
 
static ptid_t fork_id_to_ptid (int num)
 
static void init_fork_list (void)
 
static off_t call_lseek (int fd, off_t offset, int whence)
 
static void fork_load_infrun_state (struct fork_info *fp)
 
static void fork_save_infrun_state (struct fork_info *fp, int clobber_regs)
 
void linux_fork_killall (void)
 
void linux_fork_mourn_inferior (void)
 
void linux_fork_detach (const char *args, int from_tty)
 
static void inferior_call_waitpid_cleanup (void *fp)
 
static int inferior_call_waitpid (ptid_t pptid, int pid)
 
static void delete_checkpoint_command (const char *args, int from_tty)
 
static void detach_checkpoint_command (const char *args, int from_tty)
 
static void info_checkpoints_command (const char *arg, int from_tty)
 
int linux_fork_checkpointing_p (int pid)
 
static int inf_has_multiple_thread_cb (struct thread_info *tp, void *data)
 
static int inf_has_multiple_threads (void)
 
static void checkpoint_command (const char *args, int from_tty)
 
static void linux_fork_context (struct fork_info *newfp, int from_tty)
 
static void restart_command (const char *args, int from_tty)
 
void _initialize_linux_fork (void)
 

Variables

struct fork_infofork_list
 
static int highest_fork_num
 
static int checkpointing_pid = 0
 

Function Documentation

◆ _initialize_linux_fork()

void _initialize_linux_fork ( void  )

◆ add_fork()

struct fork_info* add_fork ( pid_t  pid)

◆ call_lseek()

static off_t call_lseek ( int  fd,
off_t  offset,
int  whence 
)
static

Definition at line 244 of file linux-fork.c.

References offset, and parse_and_eval_long().

Referenced by fork_load_infrun_state(), and fork_save_infrun_state().

◆ checkpoint_command()

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

◆ delete_checkpoint_command()

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

◆ delete_fork()

static void delete_fork ( ptid_t  ptid)
static

◆ detach_checkpoint_command()

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

◆ find_fork_id()

static struct fork_info* find_fork_id ( int  num)
static

Definition at line 187 of file linux-fork.c.

References fork_list, fork_info::next, and fork_info::num.

Referenced by fork_id_to_ptid(), and restart_command().

◆ find_fork_pid()

struct fork_info* find_fork_pid ( pid_t  pid)

◆ find_fork_ptid()

static struct fork_info* find_fork_ptid ( ptid_t  ptid)
static

◆ find_last_fork()

static struct fork_info* find_last_fork ( void  )
static

Definition at line 66 of file linux-fork.c.

References fork_list, and fork_info::next.

Referenced by add_fork(), and linux_fork_mourn_inferior().

◆ fork_id_to_ptid()

static ptid_t fork_id_to_ptid ( int  num)
static

◆ fork_load_infrun_state()

static void fork_load_infrun_state ( struct fork_info fp)
static

◆ fork_save_infrun_state()

static void fork_save_infrun_state ( struct fork_info fp,
int  clobber_regs 
)
static

◆ forks_exist_p()

int forks_exist_p ( void  )

Definition at line 58 of file linux-fork.c.

References fork_list.

Referenced by linux_nat_detach(), linux_nat_kill(), and linux_nat_mourn_inferior().

◆ free_fork()

static void free_fork ( struct fork_info fp)
static

Definition at line 112 of file linux-fork.c.

References fork_info::filepos, fork_info::savedregs, and xfree().

Referenced by delete_fork(), and init_fork_list().

◆ inf_has_multiple_thread_cb()

static int inf_has_multiple_thread_cb ( struct thread_info tp,
void *  data 
)
static

Definition at line 648 of file linux-fork.c.

References current_inferior(), inferior::pid, thread_info::ptid, and ptid_get_pid().

Referenced by inf_has_multiple_threads().

◆ inf_has_multiple_threads()

static int inf_has_multiple_threads ( void  )
static

Definition at line 662 of file linux-fork.c.

References inf_has_multiple_thread_cb(), and iterate_over_threads().

Referenced by checkpoint_command().

◆ inferior_call_waitpid()

static int inferior_call_waitpid ( ptid_t  pptid,
int  pid 
)
static

◆ inferior_call_waitpid_cleanup()

static void inferior_call_waitpid_cleanup ( void *  fp)
static

Definition at line 438 of file linux-fork.c.

References fork_load_infrun_state(), insert_breakpoints(), and remove_breakpoints().

Referenced by inferior_call_waitpid().

◆ info_checkpoints_command()

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

◆ init_fork_list()

static void init_fork_list ( void  )
static

Definition at line 222 of file linux-fork.c.

References fork_list, free_fork(), and fork_info::next.

Referenced by _initialize_linux_fork(), and linux_fork_killall().

◆ linux_fork_checkpointing_p()

int linux_fork_checkpointing_p ( int  pid)

Definition at line 638 of file linux-fork.c.

References checkpointing_pid, and pid.

Referenced by linux_handle_extended_wait().

◆ linux_fork_context()

static void linux_fork_context ( struct fork_info newfp,
int  from_tty 
)
static

◆ linux_fork_detach()

void linux_fork_detach ( const char *  args,
int  from_tty 
)

◆ linux_fork_killall()

void linux_fork_killall ( void  )

◆ linux_fork_mourn_inferior()

void linux_fork_mourn_inferior ( void  )

◆ restart_command()

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

Definition at line 764 of file linux-fork.c.

References _, error(), find_fork_id(), linux_fork_context(), and parse_and_eval_long().

Referenced by _initialize_linux_fork().

Variable Documentation

◆ checkpointing_pid

int checkpointing_pid = 0
static

Definition at line 635 of file linux-fork.c.

Referenced by checkpoint_command(), and linux_fork_checkpointing_p().

◆ fork_list

struct fork_info* fork_list

◆ highest_fork_num

int highest_fork_num
static

Definition at line 39 of file linux-fork.c.

Referenced by add_fork().