GDB (xrefs)
Classes | Macros | Functions | Variables
/tmp/gdb-8.1/gdb/inflow.c File Reference
#include "defs.h"
#include "frame.h"
#include "inferior.h"
#include "command.h"
#include "serial.h"
#include "terminal.h"
#include "target.h"
#include "gdbthread.h"
#include "observer.h"
#include <signal.h>
#include <fcntl.h>
#include "gdb_select.h"
#include "inflow.h"
#include "gdbcmd.h"
#include <termios.h>
#include "job-control.h"
#include <sys/ioctl.h>

Go to the source code of this file.

Classes

struct  terminal_info
 
class  scoped_ignore_sigttou
 

Macros

#define O_NOCTTY   0
 
#define OOPSY(what)
 
#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)
 

Functions

static void pass_signal (int)
 
static void child_terminal_ours_1 (int)
 
static struct terminal_infoget_inflow_inferior_data (struct inferior *)
 
pid_t inferior_process_group (void)
 
void set_initial_gdb_ttystate (void)
 
static int gdb_has_a_terminal (void)
 
void child_terminal_init (struct target_ops *self)
 
void gdb_save_tty_state (void)
 
void child_terminal_inferior (struct target_ops *self)
 
void child_terminal_ours_for_output (struct target_ops *self)
 
void child_terminal_ours (struct target_ops *self)
 
static void inflow_inferior_data_cleanup (struct inferior *inf, void *arg)
 
static void inflow_inferior_exit (struct inferior *inf)
 
void copy_terminal_info (struct inferior *to, struct inferior *from)
 
void info_terminal_command (const char *arg, int from_tty)
 
void child_terminal_info (struct target_ops *self, const char *args, int from_tty)
 
void new_tty_prefork (const char *ttyname)
 
static void check_syscall (const char *msg, int result)
 
void new_tty (void)
 
void new_tty_postfork (void)
 
void set_sigint_trap (void)
 
void clear_sigint_trap (void)
 
pid_t create_tty_session (void)
 
void initialize_stdin_serial (void)
 
void _initialize_inflow (void)
 

Variables

static struct serialstdin_serial
 
static struct terminal_info our_terminal_info
 
static serial_ttystate initial_gdb_ttystate
 
static sighandler_t sigint_ours
 
static sighandler_t sigquit_ours
 
static const char * inferior_thisrun_terminal
 
int terminal_is_ours
 
static const struct inferior_data * inflow_inferior_data
 
static sighandler_t osig
 
static int osig_set
 

Macro Definition Documentation

◆ O_ACCMODE

#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)

Referenced by child_terminal_info().

◆ O_NOCTTY

#define O_NOCTTY   0

Definition at line 44 of file inflow.c.

Referenced by new_tty(), and windows_create_inferior().

◆ OOPSY

#define OOPSY (   what)
Value:
if (result == -1) \
fprintf_unfiltered(gdb_stderr, "[%s failed in terminal_inferior: %s]\n", \
what, safe_strerror (errno))
#define gdb_stderr
Definition: utils.h:344
char * safe_strerror(int)

Definition at line 188 of file inflow.c.

Referenced by child_terminal_inferior().

Function Documentation

◆ _initialize_inflow()

void _initialize_inflow ( void  )

◆ check_syscall()

static void check_syscall ( const char *  msg,
int  result 
)
static

Definition at line 599 of file inflow.c.

References print_sys_errmsg().

Referenced by new_tty().

◆ child_terminal_inferior()

void child_terminal_inferior ( struct target_ops self)

◆ child_terminal_info()

void child_terminal_info ( struct target_ops self,
const char *  args,
int  from_tty 
)

◆ child_terminal_init()

void child_terminal_init ( struct target_ops self)

◆ child_terminal_ours()

void child_terminal_ours ( struct target_ops self)

Definition at line 329 of file inflow.c.

References child_terminal_ours_1().

Referenced by inf_child_target(), and linux_nat_terminal_ours().

◆ child_terminal_ours_1()

static void child_terminal_ours_1 ( int  output_only)
static

◆ child_terminal_ours_for_output()

void child_terminal_ours_for_output ( struct target_ops self)

Definition at line 315 of file inflow.c.

References child_terminal_ours_1().

Referenced by inf_child_target().

◆ clear_sigint_trap()

void clear_sigint_trap ( void  )

Definition at line 718 of file inflow.c.

References osig, and osig_set.

Referenced by inf_ptrace_wait(), linux_nat_terminal_ours(), rs6000_wait(), and spu_child_wait().

◆ copy_terminal_info()

void copy_terminal_info ( struct inferior to,
struct inferior from 
)

◆ create_tty_session()

pid_t create_tty_session ( void  )

Definition at line 736 of file inflow.c.

References _, inferior_thisrun_terminal, job_control, safe_strerror(), and warning().

Referenced by postfork_child_hook().

◆ gdb_has_a_terminal()

static int gdb_has_a_terminal ( void  )
static

◆ gdb_save_tty_state()

void gdb_save_tty_state ( void  )

◆ get_inflow_inferior_data()

static struct terminal_info * get_inflow_inferior_data ( struct inferior inf)
static

◆ inferior_process_group()

pid_t inferior_process_group ( void  )

◆ inflow_inferior_data_cleanup()

static void inflow_inferior_data_cleanup ( struct inferior inf,
void *  arg 
)
static

Definition at line 417 of file inflow.c.

References terminal_info::run_terminal, terminal_info::ttystate, and xfree().

Referenced by _initialize_inflow().

◆ inflow_inferior_exit()

static void inflow_inferior_exit ( struct inferior inf)
static

◆ info_terminal_command()

void info_terminal_command ( const char *  arg,
int  from_tty 
)

Definition at line 488 of file inflow.c.

References target_terminal::info().

Referenced by _initialize_inflow().

◆ initialize_stdin_serial()

void initialize_stdin_serial ( void  )

Definition at line 762 of file inflow.c.

References serial_fdopen(), and stdin_serial.

Referenced by gdb_init().

◆ new_tty()

void new_tty ( void  )

Definition at line 610 of file inflow.c.

References _, check_syscall(), inferior_thisrun_terminal, O_NOCTTY, safe_strerror(), and warning().

Referenced by postfork_child_hook().

◆ new_tty_postfork()

void new_tty_postfork ( void  )

◆ new_tty_prefork()

void new_tty_prefork ( const char *  ttyname)

Definition at line 587 of file inflow.c.

References inferior_thisrun_terminal.

Referenced by prefork_hook().

◆ pass_signal()

static void pass_signal ( int  signo)
static

Definition at line 692 of file inflow.c.

References inferior_ptid, and ptid_get_pid().

Referenced by set_sigint_trap().

◆ set_initial_gdb_ttystate()

void set_initial_gdb_ttystate ( void  )

◆ set_sigint_trap()

void set_sigint_trap ( void  )

Variable Documentation

◆ inferior_thisrun_terminal

const char* inferior_thisrun_terminal
static

Definition at line 147 of file inflow.c.

Referenced by create_tty_session(), new_tty(), new_tty_postfork(), and new_tty_prefork().

◆ inflow_inferior_data

const struct inferior_data* inflow_inferior_data
static

Definition at line 414 of file inflow.c.

Referenced by _initialize_inflow(), get_inflow_inferior_data(), and inflow_inferior_exit().

◆ initial_gdb_ttystate

serial_ttystate initial_gdb_ttystate
static

Definition at line 90 of file inflow.c.

Referenced by child_terminal_init(), gdb_has_a_terminal(), and set_initial_gdb_ttystate().

◆ osig

sighandler_t osig
static

Definition at line 699 of file inflow.c.

Referenced by clear_sigint_trap(), and set_sigint_trap().

◆ osig_set

int osig_set
static

Definition at line 700 of file inflow.c.

Referenced by clear_sigint_trap(), and set_sigint_trap().

◆ our_terminal_info

struct terminal_info our_terminal_info
static

Definition at line 83 of file inflow.c.

Referenced by child_terminal_ours_1(), gdb_save_tty_state(), and set_initial_gdb_ttystate().

◆ sigint_ours

sighandler_t sigint_ours
static

Definition at line 139 of file inflow.c.

Referenced by child_terminal_inferior(), and child_terminal_ours_1().

◆ sigquit_ours

sighandler_t sigquit_ours
static

Definition at line 140 of file inflow.c.

Referenced by child_terminal_inferior(), and child_terminal_ours_1().

◆ stdin_serial

struct serial* stdin_serial
static

◆ terminal_is_ours

int terminal_is_ours