GDB (xrefs)
/tmp/gdb-7.10/gdb/inferior.h
Go to the documentation of this file.
1 /* Variables that describe the inferior process running under GDB:
2  Where it is, why it stopped, and how to step it.
3 
4  Copyright (C) 1986-2015 Free Software Foundation, Inc.
5 
6  This file is part of GDB.
7 
8  This program is free software; you can redistribute it and/or modify
9  it under the terms of the GNU General Public License as published by
10  the Free Software Foundation; either version 3 of the License, or
11  (at your option) any later version.
12 
13  This program is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  You should have received a copy of the GNU General Public License
19  along with this program. If not, see <http://www.gnu.org/licenses/>. */
20 
21 #if !defined (INFERIOR_H)
22 #define INFERIOR_H 1
23 
24 struct target_waitstatus;
25 struct frame_info;
26 struct ui_file;
27 struct type;
28 struct gdbarch;
29 struct regcache;
30 struct ui_out;
31 struct terminal_info;
32 struct target_desc_info;
33 
34 /* For bpstat. */
35 #include "breakpoint.h"
36 
37 /* For enum gdb_signal. */
38 #include "target.h"
39 
40 /* For struct frame_id. */
41 #include "frame.h"
42 
43 #include "progspace.h"
44 #include "registry.h"
45 
48 
51 
54 
56  (struct infcall_suspend_state *);
58  (struct infcall_control_state *);
59 
62 
63 extern struct regcache *
65 
66 /* Save value of inferior_ptid so that it may be restored by
67  a later call to do_cleanups(). Returns the struct cleanup
68  pointer needed for later doing the cleanup. */
69 extern struct cleanup * save_inferior_ptid (void);
70 
71 extern void set_sigint_trap (void);
72 
73 extern void clear_sigint_trap (void);
74 
75 /* Set/get file name for default use for standard in/out in the inferior. */
76 
77 extern void set_inferior_io_terminal (const char *terminal_name);
78 extern const char *get_inferior_io_terminal (void);
79 
80 /* Collected pid, tid, etc. of the debugged inferior. When there's
81  no inferior, ptid_get_pid (inferior_ptid) will be 0. */
82 
83 extern ptid_t inferior_ptid;
84 
85 extern void generic_mourn_inferior (void);
86 
88  struct type *type,
89  const gdb_byte *buf);
90 extern void unsigned_address_to_pointer (struct gdbarch *gdbarch,
91  struct type *type, gdb_byte *buf,
92  CORE_ADDR addr);
94  struct type *type,
95  const gdb_byte *buf);
96 extern void address_to_signed_pointer (struct gdbarch *gdbarch,
97  struct type *type, gdb_byte *buf,
98  CORE_ADDR addr);
99 
100 extern void reopen_exec_file (void);
101 
102 /* From misc files */
103 
104 extern void default_print_registers_info (struct gdbarch *gdbarch,
105  struct ui_file *file,
106  struct frame_info *frame,
107  int regnum, int all);
108 
109 /* Default implementation of gdbarch_print_float_info. Print
110  the values of all floating point registers. */
111 
112 extern void default_print_float_info (struct gdbarch *gdbarch,
113  struct ui_file *file,
114  struct frame_info *frame,
115  const char *args);
116 
117 extern void child_terminal_info (struct target_ops *self, const char *, int);
118 
119 extern void term_info (char *, int);
120 
121 extern void child_terminal_ours (struct target_ops *self);
122 
123 extern void child_terminal_ours_for_output (struct target_ops *self);
124 
125 extern void child_terminal_inferior (struct target_ops *self);
126 
127 extern void child_terminal_init (struct target_ops *self);
128 
129 extern void child_terminal_init_with_pgrp (int pgrp);
130 
131 /* From fork-child.c */
132 
133 extern int fork_inferior (char *, char *, char **,
134  void (*)(void),
135  void (*)(int), void (*)(void), char *,
136  void (*)(const char *,
137  char * const *, char * const *));
138 
139 
140 extern void startup_inferior (int);
141 
142 extern char *construct_inferior_arguments (int, char **);
143 
144 /* From infcmd.c */
145 
146 extern void post_create_inferior (struct target_ops *, int);
147 
148 extern void attach_command (char *, int);
149 
150 extern char *get_inferior_args (void);
151 
152 extern void set_inferior_args (char *);
153 
154 extern void set_inferior_args_vector (int, char **);
155 
156 extern void registers_info (char *, int);
157 
158 extern void continue_1 (int all_threads);
159 
160 extern void interrupt_target_1 (int all_threads);
161 
162 extern void delete_longjmp_breakpoint_cleanup (void *arg);
163 
164 extern void detach_command (char *, int);
165 
166 extern void notice_new_inferior (ptid_t, int, int);
167 
169 extern struct value *get_return_value
170  (struct value *function, struct type *value_type,
171  struct dummy_frame_context_saver *ctx_saver);
172 
173 /* Prepare for execution command. TARGET is the target that will run
174  the command. BACKGROUND determines whether this is a foreground
175  (synchronous) or background (asynchronous) command. */
176 
177 extern void prepare_execution_command (struct target_ops *target,
178  int background);
179 
180 /* Whether to start up the debuggee under a shell.
181 
182  If startup-with-shell is set, GDB's "run" will attempt to start up
183  the debuggee under a shell.
184 
185  This is in order for argument-expansion to occur. E.g.,
186 
187  (gdb) run *
188 
189  The "*" gets expanded by the shell into a list of files.
190 
191  While this is a nice feature, it may be handy to bypass the shell
192  in some cases. To disable this feature, do "set startup-with-shell
193  false".
194 
195  The catch-exec traps expected during start-up will be one more if
196  the target is started up with a shell. */
197 extern int startup_with_shell;
198 
199 /* Address at which inferior stopped. */
200 
201 extern CORE_ADDR stop_pc;
202 
203 /* Nonzero if stopped due to completion of a stack dummy routine. */
204 
206 
207 /* Nonzero if program stopped due to a random (unexpected) signal in
208  inferior process. */
209 
210 extern int stopped_by_random_signal;
211 
212 /* STEP_OVER_ALL means step over all subroutine calls.
213  STEP_OVER_UNDEBUGGABLE means step over calls to undebuggable functions.
214  STEP_OVER_NONE means don't step over any subroutine calls. */
215 
217  {
221  };
222 
223 /* Anything but NO_STOP_QUIETLY means we expect a trap and the caller
224  will handle it themselves. STOP_QUIETLY is used when running in
225  the shell before the child program has been exec'd and when running
226  through shared library loading. STOP_QUIETLY_REMOTE is used when
227  setting up a remote connection; it is like STOP_QUIETLY_NO_SIGSTOP
228  except that there is no need to hide a signal. */
229 
230 /* STOP_QUIETLY_NO_SIGSTOP is used to handle a tricky situation with attach.
231  When doing an attach, the kernel stops the debuggee with a SIGSTOP.
232  On newer GNU/Linux kernels (>= 2.5.61) the handling of SIGSTOP for
233  a ptraced process has changed. Earlier versions of the kernel
234  would ignore these SIGSTOPs, while now SIGSTOP is treated like any
235  other signal, i.e. it is not muffled.
236 
237  If the gdb user does a 'continue' after the 'attach', gdb passes
238  the global variable stop_signal (which stores the signal from the
239  attach, SIGSTOP) to the ptrace(PTRACE_CONT,...) call. This is
240  problematic, because the kernel doesn't ignore such SIGSTOP
241  now. I.e. it is reported back to gdb, which in turn presents it
242  back to the user.
243 
244  To avoid the problem, we use STOP_QUIETLY_NO_SIGSTOP, which allows
245  gdb to clear the value of stop_signal after the attach, so that it
246  is not passed back down to the kernel. */
247 
249  {
254  };
255 
256 
257 /* Possible values for gdbarch_call_dummy_location. */
258 #define ON_STACK 1
259 #define AT_ENTRY_POINT 4
260 
261 /* Number of traps that happen between exec'ing the shell to run an
262  inferior and when we finally get to the inferior code, not counting
263  the exec for the shell. This is 1 on all supported
264  implementations. */
265 #define START_INFERIOR_TRAPS_EXPECTED 1
266 
267 struct private_inferior;
268 
269 /* Inferior process specific part of `struct infcall_control_state'.
270 
271  Inferior thread counterpart is `struct thread_control_state'. */
272 
274 {
275  /* See the definition of stop_kind above. */
277 };
278 
279 /* GDB represents the state of each program execution with an object
280  called an inferior. An inferior typically corresponds to a process
281  but is more general and applies also to targets that do not have a
282  notion of processes. Each run of an executable creates a new
283  inferior, as does each attachment to an existing process.
284  Inferiors have unique internal identifiers that are different from
285  target process ids. Each inferior may in turn have multiple
286  threads running in it. */
287 
288 struct inferior
289 {
290  /* Pointer to next inferior in singly-linked list of inferiors. */
291  struct inferior *next;
292 
293  /* Convenient handle (GDB inferior id). Unique across all
294  inferiors. */
295  int num;
296 
297  /* Actual target inferior id, usually, a process id. This matches
298  the ptid_t.pid member of threads of this inferior. */
299  int pid;
300  /* True if the PID was actually faked by GDB. */
302 
303  /* State of GDB control of inferior process execution.
304  See `struct inferior_control_state'. */
306 
307  /* True if this was an auto-created inferior, e.g. created from
308  following a fork; false, if this inferior was manually added by
309  the user, and we should not attempt to prune it
310  automatically. */
312 
313  /* The address space bound to this inferior. */
315 
316  /* The program space bound to this inferior. */
318 
319  /* The arguments string to use when running. */
320  char *args;
321 
322  /* The size of elements in argv. */
323  int argc;
324 
325  /* The vector version of arguments. If ARGC is nonzero,
326  then we must compute ARGS from this (via the target).
327  This is always coming from main's argv and therefore
328  should never be freed. */
329  char **argv;
330 
331  /* The name of terminal device to use for I/O. */
332  char *terminal;
333 
334  /* Environment to use for running inferior,
335  in format described in environ.h. */
337 
338  /* Nonzero if this child process was attached rather than
339  forked. */
341 
342  /* If this inferior is a vfork child, then this is the pointer to
343  its vfork parent, if GDB is still attached to it. */
345 
346  /* If this process is a vfork parent, this is the pointer to the
347  child. Since a vfork parent is left frozen by the kernel until
348  the child execs or exits, a process can only have one vfork child
349  at a given time. */
351 
352  /* True if this inferior should be detached when it's vfork sibling
353  exits or execs. */
355 
356  /* True if this inferior is a vfork parent waiting for a vfork child
357  not under our control to be done with the shared memory region,
358  either by exiting or execing. */
360 
361  /* True if we're in the process of detaching from this inferior. */
363 
364  /* What is left to do for an execution command after any thread of
365  this inferior stops. For continuations associated with a
366  specific thread, see `struct thread_info'. */
368 
369  /* Private data used by the target vector implementation. */
371 
372  /* HAS_EXIT_CODE is true if the inferior exited with an exit code.
373  In this case, the EXIT_CODE field is also valid. */
376 
377  /* Default flags to pass to the symbol reading functions. These are
378  used whenever a new objfile is created. The valid values come
379  from enum symfile_add_flags. */
381 
382  /* Info about an inferior's target description (if it's fetched; the
383  user supplied description's filename, if any; etc.). */
385 
386  /* The architecture associated with the inferior through the
387  connection to the target.
388 
389  The architecture vector provides some information that is really
390  a property of the inferior, accessed through a particular target:
391  ptrace operations; the layout of certain RSP packets; the
392  solib_ops vector; etc. To differentiate architecture accesses to
393  per-inferior/target properties from
394  per-thread/per-frame/per-objfile properties, accesses to
395  per-inferior/target properties should be made through
396  this gdbarch. */
397  struct gdbarch *gdbarch;
398 
399  /* Per inferior data-pointers required by other GDB modules. */
401 };
402 
403 /* Keep a registry of per-inferior data-pointers required by other GDB
404  modules. */
405 
407 
408 /* Create an empty inferior list, or empty the existing one. */
409 extern void init_inferior_list (void);
410 
411 /* Add an inferior to the inferior list, print a message that a new
412  inferior is found, and return the pointer to the new inferior.
413  Caller may use this pointer to initialize the private inferior
414  data. */
415 extern struct inferior *add_inferior (int pid);
416 
417 /* Same as add_inferior, but don't print new inferior notifications to
418  the CLI. */
419 extern struct inferior *add_inferior_silent (int pid);
420 
421 /* Delete an existing inferior list entry, due to inferior exit. */
422 extern void delete_inferior (int pid);
423 
424 extern void delete_inferior_1 (struct inferior *todel, int silent);
425 
426 /* Same as delete_inferior, but don't print new inferior notifications
427  to the CLI. */
428 extern void delete_inferior_silent (int pid);
429 
430 /* Delete an existing inferior list entry, due to inferior detaching. */
431 extern void detach_inferior (int pid);
432 
433 extern void exit_inferior (int pid);
434 
435 extern void exit_inferior_silent (int pid);
436 
437 extern void exit_inferior_num_silent (int num);
438 
439 extern void inferior_appeared (struct inferior *inf, int pid);
440 
441 /* Get rid of all inferiors. */
442 extern void discard_all_inferiors (void);
443 
444 /* Translate the integer inferior id (GDB's homegrown id, not the system's)
445  into a "pid" (which may be overloaded with extra inferior information). */
446 extern int gdb_inferior_id_to_pid (int);
447 
448 /* Translate a target 'pid' into the integer inferior id (GDB's
449  homegrown id, not the system's). */
450 extern int pid_to_gdb_inferior_id (int pid);
451 
452 /* Boolean test for an already-known pid. */
453 extern int in_inferior_list (int pid);
454 
455 /* Boolean test for an already-known inferior id (GDB's homegrown id,
456  not the system's). */
457 extern int valid_gdb_inferior_id (int num);
458 
459 /* Search function to lookup an inferior by target 'pid'. */
460 extern struct inferior *find_inferior_pid (int pid);
461 
462 /* Search function to lookup an inferior whose pid is equal to 'ptid.pid'. */
463 extern struct inferior *find_inferior_ptid (ptid_t ptid);
464 
465 /* Search function to lookup an inferior by GDB 'num'. */
466 extern struct inferior *find_inferior_id (int num);
467 
468 /* Find an inferior bound to PSPACE, giving preference to the current
469  inferior. */
470 extern struct inferior *
472 
473 /* Inferior iterator function.
474 
475  Calls a callback function once for each inferior, so long as the
476  callback function returns false. If the callback function returns
477  true, the iteration will end and the current inferior will be
478  returned. This can be useful for implementing a search for a
479  inferior with arbitrary attributes, or for applying some operation
480  to every inferior.
481 
482  It is safe to delete the iterated inferior from the callback. */
483 extern struct inferior *iterate_over_inferiors (int (*) (struct inferior *,
484  void *),
485  void *);
486 
487 /* Returns true if the inferior list is not empty. */
488 extern int have_inferiors (void);
489 
490 /* Returns true if there are any live inferiors in the inferior list
491  (not cores, not executables, real live processes). */
492 extern int have_live_inferiors (void);
493 
494 /* Return a pointer to the current inferior. It is an error to call
495  this if there is no current inferior. */
496 extern struct inferior *current_inferior (void);
497 
498 extern void set_current_inferior (struct inferior *);
499 
500 extern struct cleanup *save_current_inferior (void);
501 
502 /* Traverse all inferiors. */
503 
504 #define ALL_INFERIORS(I) \
505  for ((I) = inferior_list; (I); (I) = (I)->next)
506 
507 extern struct inferior *inferior_list;
508 
509 /* Prune away automatically added inferiors that aren't required
510  anymore. */
511 extern void prune_inferiors (void);
512 
513 extern int number_of_inferiors (void);
514 
515 extern struct inferior *add_inferior_with_spaces (void);
516 
517 #endif /* !defined (INFERIOR_H) */
void term_info(char *, int)
Definition: inflow.c:578
int fork_inferior(char *, char *, char **, void(*)(void), void(*)(int), void(*)(void), char *, void(*)(const char *, char *const *, char *const *))
struct continuation * continuations
Definition: inferior.h:367
int pending_detach
Definition: inferior.h:354
void restore_infcall_control_state(struct infcall_control_state *)
Definition: infrun.c:7450
struct inferior * find_inferior_id(int num)
Definition: inferior.c:342
void detach_command(char *, int)
Definition: infcmd.c:2780
void discard_infcall_suspend_state(struct infcall_suspend_state *)
Definition: infrun.c:7363
char * construct_inferior_arguments(int, char **)
Definition: infcmd.c:250
int gdb_inferior_id_to_pid(int)
Definition: inferior.c:438
void continue_1(int all_threads)
Definition: infcmd.c:719
void child_terminal_info(struct target_ops *self, const char *, int)
Definition: inflow.c:584
bfd_vma CORE_ADDR
Definition: common-types.h:41
int in_inferior_list(int pid)
Definition: inferior.c:448
stop_stack_kind
Definition: breakpoint.h:975
struct target_desc_info * tdesc_info
Definition: inferior.h:384
void inferior_appeared(struct inferior *inf, int pid)
Definition: inferior.c:320
struct infcall_suspend_state * save_infcall_suspend_state(void)
Definition: infrun.c:7269
int number_of_inferiors(void)
Definition: inferior.c:522
void set_current_inferior(struct inferior *)
Definition: inferior.c:63
enum stop_kind stop_soon
Definition: inferior.h:276
int pid
Definition: inferior.h:299
char * args
Definition: inferior.h:320
CORE_ADDR signed_pointer_to_address(struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
Definition: findvar.c:311
void default_print_float_info(struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, const char *args)
Definition: infcmd.c:2878
int num
Definition: inferior.h:295
void generic_mourn_inferior(void)
Definition: target.c:3171
void delete_inferior_silent(int pid)
Definition: inferior.c:232
struct inferior * iterate_over_inferiors(int(*)(struct inferior *, void *), void *)
Definition: inferior.c:398
struct inferior * add_inferior_with_spaces(void)
Definition: inferior.c:807
int removable
Definition: inferior.h:311
void set_sigint_trap(void)
Definition: inflow.c:795
DECLARE_REGISTRY(inferior)
void child_terminal_inferior(struct target_ops *self)
Definition: inflow.c:287
void interrupt_target_1(int all_threads)
Definition: infcmd.c:2829
void child_terminal_ours_for_output(struct target_ops *self)
Definition: inflow.c:371
int startup_with_shell
Definition: infcmd.c:141
CORE_ADDR stop_pc
Definition: infcmd.c:128
LONGEST exit_code
Definition: inferior.h:375
void prune_inferiors(void)
Definition: inferior.c:493
struct inferior * find_inferior_for_program_space(struct program_space *pspace)
Definition: inferior.c:381
struct cleanup * make_cleanup_restore_infcall_suspend_state(struct infcall_suspend_state *)
Definition: infrun.c:7357
void child_terminal_ours(struct target_ops *self)
Definition: inflow.c:385
Definition: ui-out.c:99
int detaching
Definition: inferior.h:362
Definition: ptid.h:35
void delete_longjmp_breakpoint_cleanup(void *arg)
Definition: infcmd.c:898
struct cleanup * save_current_inferior(void)
Definition: inferior.c:87
void address_to_signed_pointer(struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
Definition: findvar.c:331
char * terminal
Definition: inferior.h:332
struct cleanup * save_inferior_ptid(void)
Definition: infrun.c:7538
struct address_space * aspace
Definition: inferior.h:314
void startup_inferior(int)
Definition: fork-child.c:414
struct program_space * pspace
Definition: inferior.h:317
struct gdb_environ * environment
Definition: inferior.h:336
void child_terminal_init_with_pgrp(int pgrp)
Definition: inflow.c:226
void set_inferior_args_vector(int, char **)
Definition: infcmd.c:218
struct inferior_control_state control
Definition: inferior.h:305
ptid_t inferior_ptid
Definition: infcmd.c:124
void reopen_exec_file(void)
Definition: corefile.c:132
struct inferior * add_inferior(int pid)
Definition: inferior.c:155
void set_inferior_args(char *)
Definition: infcmd.c:209
Definition: gdbtypes.h:749
void delete_inferior(int pid)
Definition: inferior.c:221
char ** argv
Definition: inferior.h:329
Definition: gnu-nat.c:163
void registers_info(char *, int)
Definition: infcmd.c:2251
int waiting_for_vfork_done
Definition: inferior.h:359
void attach_command(char *, int)
Definition: infcmd.c:2583
struct inferior * add_inferior_silent(int pid)
Definition: inferior.c:127
int regnum
Definition: aarch64-tdep.c:69
void discard_all_inferiors(void)
Definition: inferior.c:330
int have_live_inferiors(void)
Definition: inferior.c:472
step_over_calls_kind
Definition: inferior.h:216
struct inferior * vfork_child
Definition: inferior.h:350
int symfile_flags
Definition: inferior.h:380
int attach_flag
Definition: inferior.h:340
int stopped_by_random_signal
Definition: infcmd.c:137
Definition: value.c:172
struct inferior * find_inferior_ptid(ptid_t ptid)
Definition: inferior.c:373
void notice_new_inferior(ptid_t, int, int)
Definition: infcmd.c:2711
void restore_infcall_suspend_state(struct infcall_suspend_state *)
Definition: infrun.c:7321
void discard_infcall_control_state(struct infcall_control_state *)
Definition: infrun.c:7504
bfd_byte gdb_byte
Definition: common-types.h:38
struct inferior * next
Definition: inferior.h:291
void post_create_inferior(struct target_ops *, int)
Definition: infcmd.c:406
stop_kind
Definition: inferior.h:248
void set_inferior_io_terminal(const char *terminal_name)
Definition: infcmd.c:150
void exit_inferior(int pid)
Definition: inferior.c:282
const char * get_inferior_io_terminal(void)
Definition: infcmd.c:157
struct value * get_return_value(struct value *function, struct type *value_type, struct dummy_frame_context_saver *ctx_saver)
Definition: infcmd.c:1516
char * get_inferior_args(void)
Definition: infcmd.c:187
void unsigned_address_to_pointer(struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr)
Definition: findvar.c:322
struct regcache * get_infcall_suspend_state_regcache(struct infcall_suspend_state *)
Definition: infrun.c:7371
void init_inferior_list(void)
Definition: inferior.c:109
int fake_pid_p
Definition: inferior.h:301
void exit_inferior_silent(int pid)
Definition: inferior.c:293
int argc
Definition: inferior.h:323
CORE_ADDR unsigned_pointer_to_address(struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf)
Definition: findvar.c:302
int pid_to_gdb_inferior_id(int pid)
Definition: inferior.c:426
int has_exit_code
Definition: inferior.h:374
void clear_sigint_trap(void)
Definition: inflow.c:810
REGISTRY_FIELDS
Definition: inferior.h:400
int have_inferiors(void)
Definition: inferior.c:460
struct type * value_type(const struct value *value)
Definition: value.c:1021
enum stop_stack_kind stop_stack_dummy
Definition: infcmd.c:132
struct private_inferior * priv
Definition: inferior.h:370
void default_print_registers_info(struct gdbarch *gdbarch, struct ui_file *file, struct frame_info *frame, int regnum, int all)
Definition: infcmd.c:2206
void * arg
Definition: cleanups.c:43
void child_terminal_init(struct target_ops *self)
Definition: inflow.c:266
struct inferior * find_inferior_pid(int pid)
Definition: inferior.c:354
struct inferior * inferior_list
Definition: inferior.c:46
struct inferior * vfork_parent
Definition: inferior.h:344
void exit_inferior_num_silent(int num)
Definition: inferior.c:301
int valid_gdb_inferior_id(int num)
Definition: inferior.c:414
struct inferior * current_inferior(void)
Definition: inferior.c:57
struct gdbarch * gdbarch
Definition: inferior.h:397
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int int rusage_t pid_t pid
Definition: gnu-nat.c:1818
struct cleanup * make_cleanup_restore_infcall_control_state(struct infcall_control_state *)
Definition: infrun.c:7498
void detach_inferior(int pid)
Definition: inferior.c:309
long long LONGEST
Definition: common-types.h:52
void prepare_execution_command(struct target_ops *target, int background)
Definition: infcmd.c:500
void delete_inferior_1(struct inferior *todel, int silent)
Definition: inferior.c:191
struct infcall_control_state * save_infcall_control_state(void)
Definition: infrun.c:7398