X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Finferior.h;h=571d26a1f84b80905f62eaf739847e8b01abc31f;hb=35fd2deb6916e972248d52b1bc1d584fa9059f8f;hp=0d242fe790f3a4fe56230eea35e626eb9029fbff;hpb=8a6c40311297f60ad13827650fdde13da301b505;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/inferior.h b/gdb/inferior.h index 0d242fe790..571d26a1f8 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -1,7 +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-2015 Free Software Foundation, Inc. + Copyright (C) 1986-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -143,6 +143,12 @@ extern char *construct_inferior_arguments (int, char **); /* 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); @@ -165,10 +171,8 @@ extern void detach_command (char *, int); extern void notice_new_inferior (ptid_t, int, int); -struct dummy_frame_context_saver; -extern struct value *get_return_value - (struct value *function, struct type *value_type, - struct dummy_frame_context_saver *ctx_saver); +extern struct value *get_return_value (struct value *function, + struct type *value_type); /* Prepare for execution command. TARGET is the target that will run the command. BACKGROUND determines whether this is a foreground @@ -276,16 +280,6 @@ struct inferior_control_state 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 @@ -310,16 +304,13 @@ struct inferior /* 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 @@ -382,6 +373,12 @@ struct inferior 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 *priv; @@ -434,14 +431,7 @@ extern struct inferior *add_inferior (int pid); 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); @@ -503,6 +493,9 @@ extern struct inferior *iterate_over_inferiors (int (*) (struct inferior *, /* 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);