GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
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 "observable.h"
#include <signal.h>
#include <fcntl.h>
#include "gdbsupport/gdb_select.h"
#include "gdbcmd.h"
#include "gdbsupport/job-control.h"
#include "gdbsupport/scoped_ignore_sigttou.h"

Go to the source code of this file.

Classes

struct  terminal_info
 

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 (target_terminal_state)
 
static struct terminal_infoget_inflow_inferior_data (struct inferior *)
 
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)
 
tribool is_gdb_terminal (const char *tty)
 
static bool sharing_input_terminal (inferior *inf)
 
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)
 
void child_terminal_save_inferior (struct target_ops *self)
 
void child_interrupt (struct target_ops *self)
 
void child_pass_ctrlc (struct target_ops *self)
 
static void inflow_inferior_exit (struct inferior *inf)
 
void copy_terminal_info (struct inferior *to, struct inferior *from)
 
void swap_terminal_info (inferior *a, inferior *b)
 
static 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 (std::string 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 ()
 

Variables

static struct serialstdin_serial
 
static struct terminal_info our_terminal_info
 
static serial_ttystate initial_gdb_ttystate
 
static gdb::optional< sighandler_t > sigint_ours
 
static std::string inferior_thisrun_terminal
 
static target_terminal_state gdb_tty_state = target_terminal_state::is_ours
 
static const registry< inferior >::key< terminal_infoinflow_inferior_data
 
static sighandler_t osig
 
static int osig_set
 

Macro Definition Documentation

◆ O_ACCMODE

#define O_ACCMODE   (O_RDONLY | O_WRONLY | O_RDWR)

◆ O_NOCTTY

#define O_NOCTTY   0

Definition at line 44 of file inflow.c.

Referenced by windows_nat_target::create_inferior(), new_tty(), and open_terminal_stream().

◆ OOPSY

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

Definition at line 173 of file inflow.c.

Referenced by child_terminal_inferior().

Function Documentation

◆ _initialize_inflow()

void _initialize_inflow ( )

Definition at line 932 of file inflow.c.

Referenced by initialize_all_files().

◆ check_syscall()

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

Definition at line 765 of file inflow.c.

References gdb_printf(), and gdb_stderr.

Referenced by new_tty().

◆ child_interrupt()

void child_interrupt ( struct target_ops * self)

Definition at line 505 of file inflow.c.

References all_non_exited_threads(), thread_info::inf, and inferior::pid.

Referenced by inf_child_target::interrupt().

◆ child_pass_ctrlc()

void child_pass_ctrlc ( struct target_ops * self)

◆ 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 403 of file inflow.c.

References child_terminal_ours_1(), and is_ours.

Referenced by inf_child_target::terminal_ours().

◆ child_terminal_ours_1()

static void child_terminal_ours_1 ( target_terminal_state desired_state)
static

◆ child_terminal_ours_for_output()

void child_terminal_ours_for_output ( struct target_ops * self)

Definition at line 389 of file inflow.c.

References child_terminal_ours_1(), and is_ours_for_output.

Referenced by inf_child_target::terminal_ours_for_output().

◆ child_terminal_save_inferior()

void child_terminal_save_inferior ( struct target_ops * self)

◆ clear_sigint_trap()

void clear_sigint_trap ( void )

◆ 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 899 of file inflow.c.

References inferior_thisrun_terminal.

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

◆ inflow_inferior_exit()

static void inflow_inferior_exit ( struct inferior * inf)
static

Definition at line 614 of file inflow.c.

References inflow_inferior_data, and is_ours.

◆ info_terminal_command()

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

Definition at line 654 of file inflow.c.

References target_terminal::info().

◆ initialize_stdin_serial()

void initialize_stdin_serial ( void )

Definition at line 925 of file inflow.c.

References serial_fdopen(), and stdin_serial.

Referenced by gdb_init().

◆ is_gdb_terminal()

tribool is_gdb_terminal ( const char * tty)

Definition at line 218 of file inflow.c.

Referenced by sharing_input_terminal(), and sharing_input_terminal().

◆ new_tty()

void new_tty ( void )

Definition at line 777 of file inflow.c.

References check_syscall(), inferior_thisrun_terminal, and O_NOCTTY.

Referenced by postfork_child_hook().

◆ new_tty_postfork()

void new_tty_postfork ( void )

◆ new_tty_prefork()

void new_tty_prefork ( std::string ttyname)

Definition at line 753 of file inflow.c.

References inferior_thisrun_terminal.

Referenced by prefork_hook().

◆ pass_signal()

static void pass_signal ( int signo)
static

Definition at line 855 of file inflow.c.

References inferior_ptid.

Referenced by set_sigint_trap().

◆ set_initial_gdb_ttystate()

void set_initial_gdb_ttystate ( void )

◆ set_sigint_trap()

void set_sigint_trap ( void )

◆ sharing_input_terminal()

static bool sharing_input_terminal ( inferior * inf)
static

◆ swap_terminal_info()

void swap_terminal_info ( inferior * a,
inferior * b )

Variable Documentation

◆ gdb_tty_state

Definition at line 138 of file inflow.c.

Referenced by child_terminal_inferior(), and child_terminal_ours_1().

◆ inferior_thisrun_terminal

std::string inferior_thisrun_terminal
static

Definition at line 126 of file inflow.c.

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

◆ inflow_inferior_data

const registry<inferior>::key<terminal_info> inflow_inferior_data
static

Definition at line 585 of file inflow.c.

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

◆ initial_gdb_ttystate

serial_ttystate initial_gdb_ttystate
static

Definition at line 107 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 862 of file inflow.c.

Referenced by clear_sigint_trap(), and set_sigint_trap().

◆ osig_set

int osig_set
static

Definition at line 863 of file inflow.c.

Referenced by clear_sigint_trap(), and set_sigint_trap().

◆ our_terminal_info

struct terminal_info our_terminal_info
static

◆ sigint_ours

gdb::optional<sighandler_t> sigint_ours
static

Definition at line 116 of file inflow.c.

Referenced by child_terminal_inferior(), and child_terminal_ours_1().

◆ stdin_serial

struct serial* stdin_serial
static