* emulparams/msp430all.sh: Update ARCH names.
[deliverable/binutils-gdb.git] / gdb / inferior.h
CommitLineData
c906108c
SS
1/* Variables that describe the inferior process running under GDB:
2 Where it is, why it stopped, and how to step it.
1bac305b 3
28e7fd62 4 Copyright (C) 1986-2013 Free Software Foundation, Inc.
c906108c 5
c5aa993b 6 This file is part of GDB.
c906108c 7
c5aa993b
JM
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
a9762ec7 10 the Free Software Foundation; either version 3 of the License, or
c5aa993b 11 (at your option) any later version.
c906108c 12
c5aa993b
JM
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.
c906108c 17
c5aa993b 18 You should have received a copy of the GNU General Public License
a9762ec7 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c906108c
SS
20
21#if !defined (INFERIOR_H)
22#define INFERIOR_H 1
23
da3331ec
AC
24struct target_waitstatus;
25struct frame_info;
26struct ui_file;
27struct type;
67a2b77e 28struct gdbarch;
72cec141 29struct regcache;
b77209e0 30struct ui_out;
7e1789f5 31struct terminal_info;
6ecd4729 32struct target_desc_info;
67a2b77e 33
d26e3629
KY
34#include "ptid.h"
35
c906108c
SS
36/* For bpstat. */
37#include "breakpoint.h"
38
2ea28649 39/* For enum gdb_signal. */
c906108c
SS
40#include "target.h"
41
aa0cd9c1
AC
42/* For struct frame_id. */
43#include "frame.h"
44
6c95b8df 45#include "progspace.h"
8e260fc0 46#include "registry.h"
6c95b8df 47
16c381f0
JK
48struct infcall_suspend_state;
49struct infcall_control_state;
7a292a7a 50
16c381f0
JK
51extern struct infcall_suspend_state *save_infcall_suspend_state (void);
52extern struct infcall_control_state *save_infcall_control_state (void);
c906108c 53
16c381f0
JK
54extern void restore_infcall_suspend_state (struct infcall_suspend_state *);
55extern void restore_infcall_control_state (struct infcall_control_state *);
b89667eb 56
16c381f0
JK
57extern struct cleanup *make_cleanup_restore_infcall_suspend_state
58 (struct infcall_suspend_state *);
59extern struct cleanup *make_cleanup_restore_infcall_control_state
60 (struct infcall_control_state *);
b89667eb 61
16c381f0
JK
62extern void discard_infcall_suspend_state (struct infcall_suspend_state *);
63extern void discard_infcall_control_state (struct infcall_control_state *);
7a292a7a 64
16c381f0
JK
65extern struct regcache *
66 get_infcall_suspend_state_regcache (struct infcall_suspend_state *);
b89667eb 67
0723dbf5
PA
68/* Returns true if PTID matches filter FILTER. FILTER can be the wild
69 card MINUS_ONE_PTID (all ptid match it); can be a ptid representing
70 a process (ptid_is_pid returns true), in which case, all lwps and
71 threads of that given process match, lwps and threads of other
72 processes do not; or, it can represent a specific thread, in which
73 case, only that thread will match true. PTID must represent a
74 specific LWP or THREAD, it can never be a wild card. */
75
76extern int ptid_match (ptid_t ptid, ptid_t filter);
77
ce696e05
KB
78/* Save value of inferior_ptid so that it may be restored by
79 a later call to do_cleanups(). Returns the struct cleanup
80 pointer needed for later doing the cleanup. */
81extern struct cleanup * save_inferior_ptid (void);
82
a14ed312 83extern void set_sigint_trap (void);
c906108c 84
a14ed312 85extern void clear_sigint_trap (void);
c906108c 86
3cb3b8df 87/* Set/get file name for default use for standard in/out in the inferior. */
c906108c 88
3cb3b8df
BR
89extern void set_inferior_io_terminal (const char *terminal_name);
90extern const char *get_inferior_io_terminal (void);
c906108c 91
39f77062 92/* Collected pid, tid, etc. of the debugged inferior. When there's
1777feb0 93 no inferior, PIDGET (inferior_ptid) will be 0. */
c906108c 94
39f77062 95extern ptid_t inferior_ptid;
c906108c 96
43ff13b4
JM
97/* Are we simulating synchronous execution? This is used in async gdb
98 to implement the 'run', 'continue' etc commands, which will not
1777feb0 99 redisplay the prompt until the execution is actually over. */
43ff13b4
JM
100extern int sync_execution;
101
1777feb0 102/* Inferior environment. */
c906108c 103
a14ed312 104extern void clear_proceed_status (void);
c906108c 105
2ea28649 106extern void proceed (CORE_ADDR, enum gdb_signal, int);
c906108c 107
d4db2f36
PA
108extern int sched_multi;
109
5fbbeb29
CF
110/* When set, stop the 'step' command if we enter a function which has
111 no line number information. The normal behavior is that we step
112 over such function. */
113extern int step_stop_if_no_debug;
114
ad52ddc6
PA
115/* If set, the inferior should be controlled in non-stop mode. In
116 this mode, each thread is controlled independently. Execution
b021a221 117 commands apply only to the selected thread by default, and stop
ad52ddc6
PA
118 events stop only the thread that had the event -- the other threads
119 are kept running freely. */
120extern int non_stop;
121
03583c20
UW
122/* When set (default), the target should attempt to disable the operating
123 system's address space randomization feature when starting an inferior. */
124extern int disable_randomization;
125
a14ed312 126extern void generic_mourn_inferior (void);
c906108c 127
a790ad35
SC
128extern void terminal_save_ours (void);
129
a14ed312 130extern void terminal_ours (void);
c906108c 131
9898f801
UW
132extern CORE_ADDR unsigned_pointer_to_address (struct gdbarch *gdbarch,
133 struct type *type,
b60c417a 134 const gdb_byte *buf);
9898f801
UW
135extern void unsigned_address_to_pointer (struct gdbarch *gdbarch,
136 struct type *type, gdb_byte *buf,
ac2e2ef7 137 CORE_ADDR addr);
9898f801
UW
138extern CORE_ADDR signed_pointer_to_address (struct gdbarch *gdbarch,
139 struct type *type,
b60c417a 140 const gdb_byte *buf);
9898f801
UW
141extern void address_to_signed_pointer (struct gdbarch *gdbarch,
142 struct type *type, gdb_byte *buf,
ac2e2ef7 143 CORE_ADDR addr);
4478b372 144
e4c8541f 145extern void wait_for_inferior (void);
c906108c 146
24291992
PA
147extern void prepare_for_detach (void);
148
a14ed312 149extern void fetch_inferior_event (void *);
43ff13b4 150
a14ed312 151extern void init_wait_for_inferior (void);
c906108c 152
a14ed312 153extern void reopen_exec_file (void);
c906108c
SS
154
155/* The `resume' routine should only be called in special circumstances.
156 Normally, use `proceed', which handles a lot of bookkeeping. */
157
2ea28649 158extern void resume (int, enum gdb_signal);
c906108c 159
09cee04b
PA
160extern ptid_t user_visible_resume_ptid (int step);
161
9da8c2a0
PA
162extern void insert_step_resume_breakpoint_at_sal (struct gdbarch *,
163 struct symtab_and_line ,
164 struct frame_id);
165
c906108c
SS
166/* From misc files */
167
0ab7a791
AC
168extern void default_print_registers_info (struct gdbarch *gdbarch,
169 struct ui_file *file,
170 struct frame_info *frame,
171 int regnum, int all);
666e11c5 172
503ebb2c 173extern void child_terminal_info (const char *, int);
c906108c 174
a14ed312 175extern void term_info (char *, int);
c906108c 176
a14ed312 177extern void terminal_ours_for_output (void);
c906108c 178
a14ed312 179extern void terminal_inferior (void);
c906108c 180
a14ed312 181extern void terminal_init_inferior (void);
c906108c 182
a14ed312 183extern void terminal_init_inferior_with_pgrp (int pgrp);
c906108c 184
c906108c
SS
185/* From fork-child.c */
186
136d6dae
VP
187extern int fork_inferior (char *, char *, char **,
188 void (*)(void),
e69860f1
TG
189 void (*)(int), void (*)(void), char *,
190 void (*)(const char *,
191 char * const *, char * const *));
c906108c
SS
192
193
a14ed312 194extern void startup_inferior (int);
c906108c 195
bd57a748 196extern char *construct_inferior_arguments (int, char **);
552c04a7 197
c906108c
SS
198/* From infrun.c */
199
ccce17b0 200extern unsigned int debug_infrun;
628fe4e4
JK
201
202extern int stop_on_solib_events;
203
8621d6a9 204extern void start_remote (int from_tty);
c906108c 205
a14ed312 206extern void normal_stop (void);
c906108c 207
a14ed312 208extern int signal_stop_state (int);
c906108c 209
a14ed312 210extern int signal_print_state (int);
c906108c 211
a14ed312 212extern int signal_pass_state (int);
c906108c 213
a14ed312 214extern int signal_stop_update (int, int);
d4f3574e 215
a14ed312 216extern int signal_print_update (int, int);
d4f3574e 217
a14ed312 218extern int signal_pass_update (int, int);
d4f3574e 219
39f77062
KB
220extern void get_last_target_status(ptid_t *ptid,
221 struct target_waitstatus *status);
e02bc4cc 222
6604731b
DJ
223extern void follow_inferior_reset_breakpoints (void);
224
edb3359d
DJ
225void set_step_info (struct frame_info *frame, struct symtab_and_line sal);
226
c906108c
SS
227/* From infcmd.c */
228
281b533b
DJ
229extern void post_create_inferior (struct target_ops *, int);
230
a14ed312 231extern void attach_command (char *, int);
c906108c 232
a250df2e 233extern char *get_inferior_args (void);
07091751 234
3f81c18a 235extern void set_inferior_args (char *);
07091751 236
552c04a7
TT
237extern void set_inferior_args_vector (int, char **);
238
36dc181b
EZ
239extern void registers_info (char *, int);
240
77ebaa5a
VP
241extern void continue_1 (int all_threads);
242
77ebaa5a
VP
243extern void interrupt_target_1 (int all_threads);
244
186c406b
TT
245extern void delete_longjmp_breakpoint_cleanup (void *arg);
246
6418d433
VP
247extern void detach_command (char *, int);
248
1941c569
PA
249extern void notice_new_inferior (ptid_t, int, int);
250
6a3a010b 251extern struct value *get_return_value (struct value *function,
cc72b2a2
KP
252 struct type *value_type);
253
c906108c
SS
254/* Address at which inferior stopped. */
255
256extern CORE_ADDR stop_pc;
257
c906108c
SS
258/* Nonzero if stopped due to completion of a stack dummy routine. */
259
aa7d318d 260extern enum stop_stack_kind stop_stack_dummy;
c906108c
SS
261
262/* Nonzero if program stopped due to a random (unexpected) signal in
263 inferior process. */
264
265extern int stopped_by_random_signal;
266
a49f981f
MS
267/* STEP_OVER_ALL means step over all subroutine calls.
268 STEP_OVER_UNDEBUGGABLE means step over calls to undebuggable functions.
269 STEP_OVER_NONE means don't step over any subroutine calls. */
c906108c 270
5fbbeb29
CF
271enum step_over_calls_kind
272 {
273 STEP_OVER_NONE,
274 STEP_OVER_ALL,
a4acd088
CF
275 STEP_OVER_UNDEBUGGABLE
276 };
277
b0f4b84b
DJ
278/* Anything but NO_STOP_QUIETLY means we expect a trap and the caller
279 will handle it themselves. STOP_QUIETLY is used when running in
280 the shell before the child program has been exec'd and when running
281 through shared library loading. STOP_QUIETLY_REMOTE is used when
282 setting up a remote connection; it is like STOP_QUIETLY_NO_SIGSTOP
283 except that there is no need to hide a signal. */
c54cfec8 284
1777feb0 285/* It is also used after attach, due to attaching to a process. This
c54cfec8
EZ
286 is a bit trickier. When doing an attach, the kernel stops the
287 debuggee with a SIGSTOP. On newer GNU/Linux kernels (>= 2.5.61)
1777feb0 288 the handling of SIGSTOP for a ptraced process has changed. Earlier
c54cfec8
EZ
289 versions of the kernel would ignore these SIGSTOPs, while now
290 SIGSTOP is treated like any other signal, i.e. it is not muffled.
291
292 If the gdb user does a 'continue' after the 'attach', gdb passes
293 the global variable stop_signal (which stores the signal from the
294 attach, SIGSTOP) to the ptrace(PTRACE_CONT,...) call. This is
295 problematic, because the kernel doesn't ignore such SIGSTOP
1777feb0 296 now. I.e. it is reported back to gdb, which in turn presents it
c54cfec8
EZ
297 back to the user.
298
299 To avoid the problem, we use STOP_QUIETLY_NO_SIGSTOP, which allows
300 gdb to clear the value of stop_signal after the attach, so that it
301 is not passed back down to the kernel. */
302
303enum stop_kind
304 {
305 NO_STOP_QUIETLY = 0,
306 STOP_QUIETLY,
b0f4b84b 307 STOP_QUIETLY_REMOTE,
c54cfec8
EZ
308 STOP_QUIETLY_NO_SIGSTOP
309 };
c906108c 310
b2175913
MS
311/* Reverse execution. */
312enum exec_direction_kind
313 {
314 EXEC_FORWARD,
d8b34453 315 EXEC_REVERSE
b2175913
MS
316 };
317
32231432
PA
318/* The current execution direction. This should only be set to enum
319 exec_direction_kind values. It is only an int to make it
320 compatible with make_cleanup_restore_integer. */
321extern int execution_direction;
b2175913 322
642fd101
DE
323/* Save register contents here when executing a "finish" command or are
324 about to pop a stack dummy frame, if-and-only-if proceed_to_finish is set.
c906108c
SS
325 Thus this contains the return value from the called function (assuming
326 values are returned in a register). */
327
72cec141 328extern struct regcache *stop_registers;
c906108c 329
237fc4c9
PA
330/* True if we are debugging displaced stepping. */
331extern int debug_displaced;
332
333/* Dump LEN bytes at BUF in hex to FILE, followed by a newline. */
334void displaced_step_dump_bytes (struct ui_file *file,
335 const gdb_byte *buf, size_t len);
336
9a1edae6 337struct displaced_step_closure *get_displaced_step_closure_by_addr (CORE_ADDR addr);
c906108c 338\f
faaf634c 339/* Possible values for gdbarch_call_dummy_location. */
c906108c 340#define ON_STACK 1
c906108c
SS
341#define AT_ENTRY_POINT 4
342
c906108c
SS
343/* If STARTUP_WITH_SHELL is set, GDB's "run"
344 will attempts to start up the debugee under a shell.
1777feb0 345 This is in order for argument-expansion to occur. E.g.,
c906108c
SS
346 (gdb) run *
347 The "*" gets expanded by the shell into a list of files.
348 While this is a nice feature, it turns out to interact badly
349 with some of the catch-fork/catch-exec features we have added.
350 In particular, if the shell does any fork/exec's before
351 the exec of the target program, that can confuse GDB.
352 To disable this feature, set STARTUP_WITH_SHELL to 0.
353 To enable this feature, set STARTUP_WITH_SHELL to 1.
354 The catch-exec traps expected during start-up will
355 be 1 if target is not started up with a shell, 2 if it is.
356 - RT
357 If you disable this, you need to decrement
1777feb0 358 START_INFERIOR_TRAPS_EXPECTED in tm.h. */
c906108c
SS
359#define STARTUP_WITH_SHELL 1
360#if !defined(START_INFERIOR_TRAPS_EXPECTED)
361#define START_INFERIOR_TRAPS_EXPECTED 2
362#endif
b77209e0
PA
363
364struct private_inferior;
365
16c381f0
JK
366/* Inferior process specific part of `struct infcall_control_state'.
367
368 Inferior thread counterpart is `struct thread_control_state'. */
369
370struct inferior_control_state
371{
372 /* See the definition of stop_kind above. */
373 enum stop_kind stop_soon;
374};
375
376/* Inferior process specific part of `struct infcall_suspend_state'.
377
378 Inferior thread counterpart is `struct thread_suspend_state'. */
379
dd80ea3c 380#if 0 /* Currently unused and empty structures are not valid C. */
16c381f0
JK
381struct inferior_suspend_state
382{
383};
dd80ea3c 384#endif
16c381f0 385
b77209e0
PA
386/* GDB represents the state of each program execution with an object
387 called an inferior. An inferior typically corresponds to a process
388 but is more general and applies also to targets that do not have a
389 notion of processes. Each run of an executable creates a new
390 inferior, as does each attachment to an existing process.
391 Inferiors have unique internal identifiers that are different from
392 target process ids. Each inferior may in turn have multiple
393 threads running in it. */
394
395struct inferior
396{
397 /* Pointer to next inferior in singly-linked list of inferiors. */
398 struct inferior *next;
399
400 /* Convenient handle (GDB inferior id). Unique across all
401 inferiors. */
402 int num;
403
404 /* Actual target inferior id, usually, a process id. This matches
405 the ptid_t.pid member of threads of this inferior. */
406 int pid;
e714e1bf
UW
407 /* True if the PID was actually faked by GDB. */
408 int fake_pid_p;
b77209e0 409
16c381f0
JK
410 /* State of GDB control of inferior process execution.
411 See `struct inferior_control_state'. */
412 struct inferior_control_state control;
413
414 /* State of inferior process to restore after GDB is done with an inferior
415 call. See `struct inferior_suspend_state'. */
dd80ea3c 416#if 0 /* Currently unused and empty structures are not valid C. */
16c381f0 417 struct inferior_suspend_state suspend;
dd80ea3c 418#endif
16c381f0 419
6c95b8df
PA
420 /* True if this was an auto-created inferior, e.g. created from
421 following a fork; false, if this inferior was manually added by
422 the user, and we should not attempt to prune it
423 automatically. */
424 int removable;
425
426 /* The address space bound to this inferior. */
427 struct address_space *aspace;
428
429 /* The program space bound to this inferior. */
430 struct program_space *pspace;
431
3f81c18a
VP
432 /* The arguments string to use when running. */
433 char *args;
434
435 /* The size of elements in argv. */
436 int argc;
437
438 /* The vector version of arguments. If ARGC is nonzero,
439 then we must compute ARGS from this (via the target).
440 This is always coming from main's argv and therefore
441 should never be freed. */
442 char **argv;
443
444 /* The name of terminal device to use for I/O. */
445 char *terminal;
446
447 /* Environment to use for running inferior,
448 in format described in environ.h. */
449 struct gdb_environ *environment;
450
181e7f93
PA
451 /* Nonzero if this child process was attached rather than
452 forked. */
453 int attach_flag;
454
6c95b8df
PA
455 /* If this inferior is a vfork child, then this is the pointer to
456 its vfork parent, if GDB is still attached to it. */
457 struct inferior *vfork_parent;
458
459 /* If this process is a vfork parent, this is the pointer to the
460 child. Since a vfork parent is left frozen by the kernel until
461 the child execs or exits, a process can only have one vfork child
462 at a given time. */
463 struct inferior *vfork_child;
464
465 /* True if this inferior should be detached when it's vfork sibling
466 exits or execs. */
467 int pending_detach;
468
469 /* True if this inferior is a vfork parent waiting for a vfork child
470 not under our control to be done with the shared memory region,
471 either by exiting or execing. */
472 int waiting_for_vfork_done;
473
24291992
PA
474 /* True if we're in the process of detaching from this inferior. */
475 int detaching;
476
e0ba6746
PA
477 /* What is left to do for an execution command after any thread of
478 this inferior stops. For continuations associated with a
479 specific thread, see `struct thread_info'. */
480 struct continuation *continuations;
481
b77209e0
PA
482 /* Private data used by the target vector implementation. */
483 struct private_inferior *private;
a96d9b2e 484
8cf64490
TT
485 /* HAS_EXIT_CODE is true if the inferior exited with an exit code.
486 In this case, the EXIT_CODE field is also valid. */
487 int has_exit_code;
488 LONGEST exit_code;
489
7dcd53a0
TT
490 /* Default flags to pass to the symbol reading functions. These are
491 used whenever a new objfile is created. The valid values come
492 from enum symfile_add_flags. */
493 int symfile_flags;
494
6ecd4729
PA
495 /* Info about an inferior's target description (if it's fetched; the
496 user supplied description's filename, if any; etc.). */
497 struct target_desc_info *tdesc_info;
498
499 /* The architecture associated with the inferior through the
500 connection to the target.
501
502 The architecture vector provides some information that is really
503 a property of the inferior, accessed through a particular target:
504 ptrace operations; the layout of certain RSP packets; the
505 solib_ops vector; etc. To differentiate architecture accesses to
506 per-inferior/target properties from
507 per-thread/per-frame/per-objfile properties, accesses to
508 per-inferior/target properties should be made through
509 this gdbarch. */
510 struct gdbarch *gdbarch;
511
6c95b8df 512 /* Per inferior data-pointers required by other GDB modules. */
8e260fc0 513 REGISTRY_FIELDS;
b77209e0
PA
514};
515
6c95b8df
PA
516/* Keep a registry of per-inferior data-pointers required by other GDB
517 modules. */
518
8e260fc0 519DECLARE_REGISTRY (inferior);
6c95b8df 520
b77209e0
PA
521/* Create an empty inferior list, or empty the existing one. */
522extern void init_inferior_list (void);
523
524/* Add an inferior to the inferior list, print a message that a new
525 inferior is found, and return the pointer to the new inferior.
526 Caller may use this pointer to initialize the private inferior
527 data. */
528extern struct inferior *add_inferior (int pid);
529
530/* Same as add_inferior, but don't print new inferior notifications to
531 the CLI. */
532extern struct inferior *add_inferior_silent (int pid);
533
534/* Delete an existing inferior list entry, due to inferior exit. */
535extern void delete_inferior (int pid);
536
a79b8f6e
VP
537extern void delete_inferior_1 (struct inferior *todel, int silent);
538
b77209e0
PA
539/* Same as delete_inferior, but don't print new inferior notifications
540 to the CLI. */
541extern void delete_inferior_silent (int pid);
542
543/* Delete an existing inferior list entry, due to inferior detaching. */
544extern void detach_inferior (int pid);
545
6c95b8df
PA
546extern void exit_inferior (int pid);
547
548extern void exit_inferior_silent (int pid);
549
550extern void exit_inferior_num_silent (int num);
551
552extern void inferior_appeared (struct inferior *inf, int pid);
553
82f73884
PA
554/* Get rid of all inferiors. */
555extern void discard_all_inferiors (void);
556
b77209e0
PA
557/* Translate the integer inferior id (GDB's homegrown id, not the system's)
558 into a "pid" (which may be overloaded with extra inferior information). */
559extern int gdb_inferior_id_to_pid (int);
560
561/* Translate a target 'pid' into the integer inferior id (GDB's
562 homegrown id, not the system's). */
563extern int pid_to_gdb_inferior_id (int pid);
564
565/* Boolean test for an already-known pid. */
566extern int in_inferior_list (int pid);
567
568/* Boolean test for an already-known inferior id (GDB's homegrown id,
569 not the system's). */
2c0b251b 570extern int valid_gdb_inferior_id (int num);
b77209e0 571
6c95b8df 572/* Search function to lookup an inferior by target 'pid'. */
b77209e0
PA
573extern struct inferior *find_inferior_pid (int pid);
574
6c95b8df
PA
575/* Search function to lookup an inferior by GDB 'num'. */
576extern struct inferior *find_inferior_id (int num);
577
578/* Find an inferior bound to PSPACE. */
579extern struct inferior *
580 find_inferior_for_program_space (struct program_space *pspace);
581
b77209e0
PA
582/* Inferior iterator function.
583
584 Calls a callback function once for each inferior, so long as the
585 callback function returns false. If the callback function returns
586 true, the iteration will end and the current inferior will be
587 returned. This can be useful for implementing a search for a
588 inferior with arbitrary attributes, or for applying some operation
589 to every inferior.
590
591 It is safe to delete the iterated inferior from the callback. */
592extern struct inferior *iterate_over_inferiors (int (*) (struct inferior *,
593 void *),
594 void *);
595
b77209e0
PA
596/* Returns true if the inferior list is not empty. */
597extern int have_inferiors (void);
598
c35b1492
PA
599/* Returns true if there are any live inferiors in the inferior list
600 (not cores, not executables, real live processes). */
601extern int have_live_inferiors (void);
602
b77209e0
PA
603/* Return a pointer to the current inferior. It is an error to call
604 this if there is no current inferior. */
605extern struct inferior *current_inferior (void);
606
6c95b8df
PA
607extern void set_current_inferior (struct inferior *);
608
609extern struct cleanup *save_current_inferior (void);
610
c65b3e0d
PA
611/* Traverse all inferiors. */
612
613#define ALL_INFERIORS(I) \
614 for ((I) = inferior_list; (I); (I) = (I)->next)
615
6c95b8df
PA
616extern struct inferior *inferior_list;
617
618/* Prune away automatically added inferiors that aren't required
619 anymore. */
620extern void prune_inferiors (void);
621
622extern int number_of_inferiors (void);
623
a79b8f6e
VP
624extern struct inferior *add_inferior_with_spaces (void);
625
d914c394
SS
626extern void update_observer_mode (void);
627
9b224c5e
PA
628extern void update_signals_program_target (void);
629
ab04a2af
TT
630extern void signal_catch_update (const unsigned int *);
631
ed01b82c
PA
632/* In some circumstances we allow a command to specify a numeric
633 signal. The idea is to keep these circumstances limited so that
634 users (and scripts) develop portable habits. For comparison,
635 POSIX.2 `kill' requires that 1,2,3,6,9,14, and 15 work (and using a
636 numeric signal at all is obsolescent. We are slightly more lenient
637 and allow 1-15 which should match host signal numbers on most
638 systems. Use of symbolic signal names is strongly encouraged. */
639
2ea28649 640enum gdb_signal gdb_signal_from_command (int num);
ed01b82c 641
c906108c 642#endif /* !defined (INFERIOR_H) */
This page took 2.0451 seconds and 4 git commands to generate.