| Index: gdb/inferior.h
|
| diff --git a/gdb/inferior.h b/gdb/inferior.h
|
| index 394596251ff41a957feba3d4fe0a9dabf4c3a1ab..d33a01afaa478cc4ca308bd7792cd1a25381c0b0 100644
|
| --- a/gdb/inferior.h
|
| +++ b/gdb/inferior.h
|
| @@ -1,8 +1,7 @@
|
| /* Variables that describe the inferior process running under GDB:
|
| Where it is, why it stopped, and how to step it.
|
|
|
| - Copyright (C) 1986, 1988-1996, 1998-2001, 2003-2012 Free Software
|
| - Foundation, Inc.
|
| + Copyright (C) 1986-2013 Free Software Foundation, Inc.
|
|
|
| This file is part of GDB.
|
|
|
| @@ -30,6 +29,7 @@ struct gdbarch;
|
| struct regcache;
|
| struct ui_out;
|
| struct terminal_info;
|
| +struct target_desc_info;
|
|
|
| #include "ptid.h"
|
|
|
| @@ -43,6 +43,7 @@ struct terminal_info;
|
| #include "frame.h"
|
|
|
| #include "progspace.h"
|
| +#include "registry.h"
|
|
|
| struct infcall_suspend_state;
|
| struct infcall_control_state;
|
| @@ -89,7 +90,7 @@ extern void set_inferior_io_terminal (const char *terminal_name);
|
| extern const char *get_inferior_io_terminal (void);
|
|
|
| /* Collected pid, tid, etc. of the debugged inferior. When there's
|
| - no inferior, PIDGET (inferior_ptid) will be 0. */
|
| + no inferior, ptid_get_pid (inferior_ptid) will be 0. */
|
|
|
| extern ptid_t inferior_ptid;
|
|
|
| @@ -118,11 +119,6 @@ extern int step_stop_if_no_debug;
|
| are kept running freely. */
|
| extern int non_stop;
|
|
|
| -/* If set (default), when following a fork, GDB will detach from one
|
| - the fork branches, child or parent. Exactly which branch is
|
| - detached depends on 'set follow-fork-mode' setting. */
|
| -extern int detach_fork;
|
| -
|
| /* When set (default), the target should attempt to disable the operating
|
| system's address space randomization feature when starting an inferior. */
|
| extern int disable_randomization;
|
| @@ -174,7 +170,7 @@ extern void default_print_registers_info (struct gdbarch *gdbarch,
|
| struct frame_info *frame,
|
| int regnum, int all);
|
|
|
| -extern void child_terminal_info (char *, int);
|
| +extern void child_terminal_info (const char *, int);
|
|
|
| extern void term_info (char *, int);
|
|
|
| @@ -201,7 +197,7 @@ extern char *construct_inferior_arguments (int, char **);
|
|
|
| /* From infrun.c */
|
|
|
| -extern int debug_infrun;
|
| +extern unsigned int debug_infrun;
|
|
|
| extern int stop_on_solib_events;
|
|
|
| @@ -226,13 +222,13 @@ extern void get_last_target_status(ptid_t *ptid,
|
|
|
| extern void follow_inferior_reset_breakpoints (void);
|
|
|
| -/* Throw an error indicating the current thread is running. */
|
| -extern void error_is_running (void);
|
| +void set_step_info (struct frame_info *frame, struct symtab_and_line sal);
|
|
|
| -/* Calls error_is_running if the current thread is running. */
|
| -extern void ensure_not_running (void);
|
| +/* Clear the convenience variables associated with the exit of the
|
| + inferior. Currently, those variables are $_exitcode and
|
| + $_exitsignal. */
|
|
|
| -void set_step_info (struct frame_info *frame, struct symtab_and_line sal);
|
| +extern void clear_exit_convenience_vars (void);
|
|
|
| /* From infcmd.c */
|
|
|
| @@ -246,20 +242,10 @@ extern void set_inferior_args (char *);
|
|
|
| extern void set_inferior_args_vector (int, char **);
|
|
|
| -extern void all_registers_info (char *, int);
|
| -
|
| extern void registers_info (char *, int);
|
|
|
| -extern void nexti_command (char *, int);
|
| -
|
| -extern void stepi_command (char *, int);
|
| -
|
| extern void continue_1 (int all_threads);
|
|
|
| -extern void continue_command (char *, int);
|
| -
|
| -extern void interrupt_target_command (char *args, int from_tty);
|
| -
|
| extern void interrupt_target_1 (int all_threads);
|
|
|
| extern void delete_longjmp_breakpoint_cleanup (void *arg);
|
| @@ -271,6 +257,25 @@ extern void notice_new_inferior (ptid_t, int, int);
|
| extern struct value *get_return_value (struct value *function,
|
| struct type *value_type);
|
|
|
| +/* Whether to start up the debuggee under a shell.
|
| +
|
| + If startup-with-shell is set, GDB's "run" will attempt to start up
|
| + the debuggee under a shell.
|
| +
|
| + This is in order for argument-expansion to occur. E.g.,
|
| +
|
| + (gdb) run *
|
| +
|
| + The "*" gets expanded by the shell into a list of files.
|
| +
|
| + While this is a nice feature, it may be handy to bypass the shell
|
| + in some cases. To disable this feature, do "set startup-with-shell
|
| + false".
|
| +
|
| + The catch-exec traps expected during start-up will be one more if
|
| + the target is started up with a shell. */
|
| +extern int startup_with_shell;
|
| +
|
| /* Address at which inferior stopped. */
|
|
|
| extern CORE_ADDR stop_pc;
|
| @@ -360,25 +365,12 @@ struct displaced_step_closure *get_displaced_step_closure_by_addr (CORE_ADDR add
|
| #define ON_STACK 1
|
| #define AT_ENTRY_POINT 4
|
|
|
| -/* If STARTUP_WITH_SHELL is set, GDB's "run"
|
| - will attempts to start up the debugee under a shell.
|
| - This is in order for argument-expansion to occur. E.g.,
|
| - (gdb) run *
|
| - The "*" gets expanded by the shell into a list of files.
|
| - While this is a nice feature, it turns out to interact badly
|
| - with some of the catch-fork/catch-exec features we have added.
|
| - In particular, if the shell does any fork/exec's before
|
| - the exec of the target program, that can confuse GDB.
|
| - To disable this feature, set STARTUP_WITH_SHELL to 0.
|
| - To enable this feature, set STARTUP_WITH_SHELL to 1.
|
| - The catch-exec traps expected during start-up will
|
| - be 1 if target is not started up with a shell, 2 if it is.
|
| - - RT
|
| - If you disable this, you need to decrement
|
| - START_INFERIOR_TRAPS_EXPECTED in tm.h. */
|
| -#define STARTUP_WITH_SHELL 1
|
| +/* Number of traps that happen between exec'ing the shell to run an
|
| + inferior and when we finally get to the inferior code, not counting
|
| + the exec for the shell. This is 1 on most implementations.
|
| + Overridden in nm.h files. */
|
| #if !defined(START_INFERIOR_TRAPS_EXPECTED)
|
| -#define START_INFERIOR_TRAPS_EXPECTED 2
|
| +#define START_INFERIOR_TRAPS_EXPECTED 1
|
| #endif
|
|
|
| struct private_inferior;
|
| @@ -512,22 +504,31 @@ struct inferior
|
| from enum symfile_add_flags. */
|
| int symfile_flags;
|
|
|
| + /* Info about an inferior's target description (if it's fetched; the
|
| + user supplied description's filename, if any; etc.). */
|
| + struct target_desc_info *tdesc_info;
|
| +
|
| + /* The architecture associated with the inferior through the
|
| + connection to the target.
|
| +
|
| + The architecture vector provides some information that is really
|
| + a property of the inferior, accessed through a particular target:
|
| + ptrace operations; the layout of certain RSP packets; the
|
| + solib_ops vector; etc. To differentiate architecture accesses to
|
| + per-inferior/target properties from
|
| + per-thread/per-frame/per-objfile properties, accesses to
|
| + per-inferior/target properties should be made through
|
| + this gdbarch. */
|
| + struct gdbarch *gdbarch;
|
| +
|
| /* Per inferior data-pointers required by other GDB modules. */
|
| - void **data;
|
| - unsigned num_data;
|
| + REGISTRY_FIELDS;
|
| };
|
|
|
| /* Keep a registry of per-inferior data-pointers required by other GDB
|
| modules. */
|
|
|
| -extern const struct inferior_data *register_inferior_data (void);
|
| -extern const struct inferior_data *register_inferior_data_with_cleanup
|
| - (void (*cleanup) (struct inferior *, void *));
|
| -extern void clear_inferior_data (struct inferior *inf);
|
| -extern void set_inferior_data (struct inferior *inf,
|
| - const struct inferior_data *data, void *value);
|
| -extern void *inferior_data (struct inferior *inf,
|
| - const struct inferior_data *data);
|
| +DECLARE_REGISTRY (inferior);
|
|
|
| /* Create an empty inferior list, or empty the existing one. */
|
| extern void init_inferior_list (void);
|
| @@ -638,6 +639,8 @@ extern void update_observer_mode (void);
|
|
|
| extern void update_signals_program_target (void);
|
|
|
| +extern void signal_catch_update (const unsigned int *);
|
| +
|
| /* In some circumstances we allow a command to specify a numeric
|
| signal. The idea is to keep these circumstances limited so that
|
| users (and scripts) develop portable habits. For comparison,
|
|
|