/* Variables that describe the inferior process running under GDB:
Where it is, why it stopped, and how to step it.
- Copyright (C) 1986-2014 Free Software Foundation, Inc.
+ Copyright (C) 1986-2016 Free Software Foundation, Inc.
This file is part of GDB.
struct terminal_info;
struct target_desc_info;
-#include "ptid.h"
-
/* For bpstat. */
#include "breakpoint.h"
struct frame_info *frame,
int regnum, int all);
+/* Default implementation of gdbarch_print_float_info. Print
+ the values of all floating point registers. */
+
+extern void default_print_float_info (struct gdbarch *gdbarch,
+ struct ui_file *file,
+ struct frame_info *frame,
+ const char *args);
+
extern void child_terminal_info (struct target_ops *self, const char *, int);
extern void term_info (char *, int);
-extern void child_terminal_save_ours (struct target_ops *self);
-
extern void child_terminal_ours (struct target_ops *self);
extern void child_terminal_ours_for_output (struct target_ops *self);
/* From infcmd.c */
+/* Initial inferior setup. Determines the exec file is not yet known,
+ takes any necessary post-attaching actions, fetches the target
+ description and syncs the shared library list. */
+
+extern void setup_inferior (int from_tty);
+
extern void post_create_inferior (struct target_ops *, int);
extern void attach_command (char *, int);
extern void notice_new_inferior (ptid_t, int, int);
extern struct value *get_return_value (struct value *function,
- struct type *value_type);
+ struct type *value_type);
/* Prepare for execution command. TARGET is the target that will run
the command. BACKGROUND determines whether this is a foreground
/* 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)
+ the exec for the shell. This is 1 on all supported
+ implementations. */
#define START_INFERIOR_TRAPS_EXPECTED 1
-#endif
struct private_inferior;
enum stop_kind stop_soon;
};
-/* Inferior process specific part of `struct infcall_suspend_state'.
-
- Inferior thread counterpart is `struct thread_suspend_state'. */
-
-#if 0 /* Currently unused and empty structures are not valid C. */
-struct inferior_suspend_state
-{
-};
-#endif
-
/* GDB represents the state of each program execution with an object
called an inferior. An inferior typically corresponds to a process
but is more general and applies also to targets that do not have a
/* True if the PID was actually faked by GDB. */
int fake_pid_p;
+ /* The highest thread number this inferior ever had. */
+ int highest_thread_num;
+
/* State of GDB control of inferior process execution.
See `struct inferior_control_state'. */
struct inferior_control_state control;
- /* State of inferior process to restore after GDB is done with an inferior
- call. See `struct inferior_suspend_state'. */
-#if 0 /* Currently unused and empty structures are not valid C. */
- struct inferior_suspend_state suspend;
-#endif
-
/* True if this was an auto-created inferior, e.g. created from
following a fork; false, if this inferior was manually added by
the user, and we should not attempt to prune it
specific thread, see `struct thread_info'. */
struct continuation *continuations;
+ /* True if setup_inferior wasn't called for this inferior yet.
+ Until that is done, we must not access inferior memory or
+ registers, as we haven't determined the target
+ architecture/description. */
+ int needs_setup;
+
/* Private data used by the target vector implementation. */
- struct private_inferior *private;
+ struct private_inferior *priv;
/* HAS_EXIT_CODE is true if the inferior exited with an exit code.
In this case, the EXIT_CODE field is also valid. */
the CLI. */
extern struct inferior *add_inferior_silent (int pid);
-/* Delete an existing inferior list entry, due to inferior exit. */
-extern void delete_inferior (int pid);
-
-extern void delete_inferior_1 (struct inferior *todel, int silent);
-
-/* Same as delete_inferior, but don't print new inferior notifications
- to the CLI. */
-extern void delete_inferior_silent (int pid);
+extern void delete_inferior (struct inferior *todel);
/* Delete an existing inferior list entry, due to inferior detaching. */
extern void detach_inferior (int pid);
/* Search function to lookup an inferior by target 'pid'. */
extern struct inferior *find_inferior_pid (int pid);
+/* Search function to lookup an inferior whose pid is equal to 'ptid.pid'. */
+extern struct inferior *find_inferior_ptid (ptid_t ptid);
+
/* Search function to lookup an inferior by GDB 'num'. */
extern struct inferior *find_inferior_id (int num);
-/* Find an inferior bound to PSPACE. */
+/* Find an inferior bound to PSPACE, giving preference to the current
+ inferior. */
extern struct inferior *
find_inferior_for_program_space (struct program_space *pspace);
/* Returns true if the inferior list is not empty. */
extern int have_inferiors (void);
+/* Returns the number of live inferiors (real live processes). */
+extern int number_of_live_inferiors (void);
+
/* Returns true if there are any live inferiors in the inferior list
(not cores, not executables, real live processes). */
extern int have_live_inferiors (void);
extern struct inferior *add_inferior_with_spaces (void);
+/* Print the current selected inferior. */
+extern void print_selected_inferior (struct ui_out *uiout);
+
#endif /* !defined (INFERIOR_H) */