From patchwork Thu May 22 13:06:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pedro Alves X-Patchwork-Id: 1074 Return-Path: X-Original-To: siddhesh@wilcox.dreamhost.com Delivered-To: siddhesh@wilcox.dreamhost.com Received: from homiemail-mx21.g.dreamhost.com (peon2454.g.dreamhost.com [208.113.200.127]) by wilcox.dreamhost.com (Postfix) with ESMTP id 6C062360079 for ; Thu, 22 May 2014 06:06:18 -0700 (PDT) Received: by homiemail-mx21.g.dreamhost.com (Postfix, from userid 14314964) id 122111632801; Thu, 22 May 2014 06:06:17 -0700 (PDT) X-Original-To: gdb@patchwork.siddhesh.in Delivered-To: x14314964@homiemail-mx21.g.dreamhost.com Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by homiemail-mx21.g.dreamhost.com (Postfix) with ESMTPS id AF46D1749E92 for ; Thu, 22 May 2014 06:06:17 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; q=dns; s= default; b=FoOkhCAvfCqmqOVXTCd/qIJmEAavvACdtYS+n4msqPr4lEkLXgPSM yasnLKyrgXb3iEbOfuRJjgxmf6IOMlGGN3YRr0mz+WxIVkMlWxh9hHxAS+UngzfT bSSOOmjm2I+NwoFtPFEWPyfcnv7p+XdF33wAhaYitft5u31abyZWMY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:from:to:subject:date:message-id; s=default; bh=e8CdisfsxiIP4l58eEu86oH2wjQ=; b=TJ7gyqvkJztdcCyEyHrWL8yTh5Jt F1jakamIhcsjAhoFDjHEB6o3mh+NkTH4M4INcM9h1X7YDfWbYYCXu4h29dXnYp6o Z9bmutxRDA5m//7/+phkjr5uevDAzbUIGBcmba4rVG9C/Axcum0HWmKeY3eeXe+r 0CcvTfZ+/VUevDg= Received: (qmail 31764 invoked by alias); 22 May 2014 13:06:15 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 31746 invoked by uid 89); 22 May 2014 13:06:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.2 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 22 May 2014 13:06:11 +0000 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s4MD6Ax1000490 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 22 May 2014 09:06:10 -0400 Received: from brno.lan (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s4MD68WQ015919 for ; Thu, 22 May 2014 09:06:09 -0400 From: Pedro Alves To: gdb-patches@sourceware.org Subject: [pushed] Add new infrun.h header. Date: Thu, 22 May 2014 14:06:08 +0100 Message-Id: <1400763968-17478-1-git-send-email-palves@redhat.com> X-DH-Original-To: gdb@patchwork.siddhesh.in Move infrun.c declarations out of inferior.h to a new infrun.h file. Tested by building on: i686-w64-mingw32, enable-targets=all x86_64-linux, enable-targets=all i586-pc-msdosdjgpp And also grepped the whole tree for each symbol moved to find where infrun.h might be necessary. gdb/ 2014-05-22 Pedro Alves * inferior.h (debug_infrun, debug_displaced, stop_on_solib_events) (sync_execution, sched_multi, step_stop_if_no_debug, non_stop) (disable_randomization, enum exec_direction_kind) (execution_direction, stop_registers, start_remote) (clear_proceed_status, proceed, resume, user_visible_resume_ptid) (wait_for_inferior, normal_stop, get_last_target_status) (prepare_for_detach, fetch_inferior_event, init_wait_for_inferior) (insert_step_resume_breakpoint_at_sal) (follow_inferior_reset_breakpoints, stepping_past_instruction_at) (set_step_info, print_stop_event, signal_stop_state) (signal_print_state, signal_pass_state, signal_stop_update) (signal_print_update, signal_pass_update) (update_signals_program_target, clear_exit_convenience_vars) (displaced_step_dump_bytes, update_observer_mode) (signal_catch_update, gdb_signal_from_command): Move declarations ... * infrun.h: ... to this new file. * amd64-tdep.c: Include infrun.h. * annotate.c: Include infrun.h. * arch-utils.c: Include infrun.h. * arm-linux-tdep.c: Include infrun.h. * arm-tdep.c: Include infrun.h. * break-catch-sig.c: Include infrun.h. * breakpoint.c: Include infrun.h. * common/agent.c: Include infrun.h instead of inferior.h. * corelow.c: Include infrun.h. * event-top.c: Include infrun.h. * go32-nat.c: Include infrun.h. * i386-tdep.c: Include infrun.h. * inf-loop.c: Include infrun.h. * infcall.c: Include infrun.h. * infcmd.c: Include infrun.h. * infrun.c: Include infrun.h. * linux-fork.c: Include infrun.h. * linux-nat.c: Include infrun.h. * linux-thread-db.c: Include infrun.h. * monitor.c: Include infrun.h. * nto-tdep.c: Include infrun.h. * procfs.c: Include infrun.h. * record-btrace.c: Include infrun.h. * record-full.c: Include infrun.h. * remote-m32r-sdi.c: Include infrun.h. * remote-mips.c: Include infrun.h. * remote-notif.c: Include infrun.h. * remote-sim.c: Include infrun.h. * remote.c: Include infrun.h. * reverse.c: Include infrun.h. * rs6000-tdep.c: Include infrun.h. * s390-linux-tdep.c: Include infrun.h. * solib-irix.c: Include infrun.h. * solib-osf.c: Include infrun.h. * solib-svr4.c: Include infrun.h. * target.c: Include infrun.h. * top.c: Include infrun.h. * windows-nat.c: Include infrun.h. * mi/mi-interp.c: Include infrun.h. * mi/mi-main.c: Include infrun.h. * python/py-threadevent.c: Include infrun.h. --- gdb/ChangeLog | 61 ++++++++++++++++ gdb/amd64-tdep.c | 1 + gdb/annotate.c | 1 + gdb/arch-utils.c | 1 + gdb/arm-linux-tdep.c | 1 + gdb/arm-tdep.c | 1 + gdb/break-catch-sig.c | 1 + gdb/breakpoint.c | 1 + gdb/common/agent.c | 2 +- gdb/corelow.c | 1 + gdb/event-top.c | 1 + gdb/go32-nat.c | 1 + gdb/i386-tdep.c | 1 + gdb/inf-loop.c | 3 +- gdb/infcall.c | 1 + gdb/infcmd.c | 1 + gdb/inferior.h | 134 ------------------------------------ gdb/infrun.c | 1 + gdb/infrun.h | 164 ++++++++++++++++++++++++++++++++++++++++++++ gdb/linux-fork.c | 1 + gdb/linux-nat.c | 1 + gdb/linux-thread-db.c | 1 + gdb/mi/mi-interp.c | 1 + gdb/mi/mi-main.c | 1 + gdb/monitor.c | 1 + gdb/nto-tdep.c | 1 + gdb/procfs.c | 1 + gdb/python/py-threadevent.c | 1 + gdb/record-btrace.c | 1 + gdb/record-full.c | 1 + gdb/remote-m32r-sdi.c | 1 + gdb/remote-mips.c | 1 + gdb/remote-notif.c | 1 + gdb/remote-sim.c | 1 + gdb/remote.c | 1 + gdb/reverse.c | 1 + gdb/rs6000-tdep.c | 1 + gdb/s390-linux-tdep.c | 1 + gdb/solib-irix.c | 1 + gdb/solib-osf.c | 1 + gdb/solib-svr4.c | 1 + gdb/target.c | 1 + gdb/top.c | 1 + gdb/windows-nat.c | 1 + 44 files changed, 267 insertions(+), 136 deletions(-) create mode 100644 gdb/infrun.h diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4e65bdb..d1948b1 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,66 @@ 2014-05-22 Pedro Alves + * inferior.h (debug_infrun, debug_displaced, stop_on_solib_events) + (sync_execution, sched_multi, step_stop_if_no_debug, non_stop) + (disable_randomization, enum exec_direction_kind) + (execution_direction, stop_registers, start_remote) + (clear_proceed_status, proceed, resume, user_visible_resume_ptid) + (wait_for_inferior, normal_stop, get_last_target_status) + (prepare_for_detach, fetch_inferior_event, init_wait_for_inferior) + (insert_step_resume_breakpoint_at_sal) + (follow_inferior_reset_breakpoints, stepping_past_instruction_at) + (set_step_info, print_stop_event, signal_stop_state) + (signal_print_state, signal_pass_state, signal_stop_update) + (signal_print_update, signal_pass_update) + (update_signals_program_target, clear_exit_convenience_vars) + (displaced_step_dump_bytes, update_observer_mode) + (signal_catch_update, gdb_signal_from_command): Move + declarations ... + * infrun.h: ... to this new file. + * amd64-tdep.c: Include infrun.h. + * annotate.c: Include infrun.h. + * arch-utils.c: Include infrun.h. + * arm-linux-tdep.c: Include infrun.h. + * arm-tdep.c: Include infrun.h. + * break-catch-sig.c: Include infrun.h. + * breakpoint.c: Include infrun.h. + * common/agent.c: Include infrun.h instead of inferior.h. + * corelow.c: Include infrun.h. + * event-top.c: Include infrun.h. + * go32-nat.c: Include infrun.h. + * i386-tdep.c: Include infrun.h. + * inf-loop.c: Include infrun.h. + * infcall.c: Include infrun.h. + * infcmd.c: Include infrun.h. + * infrun.c: Include infrun.h. + * linux-fork.c: Include infrun.h. + * linux-nat.c: Include infrun.h. + * linux-thread-db.c: Include infrun.h. + * monitor.c: Include infrun.h. + * nto-tdep.c: Include infrun.h. + * procfs.c: Include infrun.h. + * record-btrace.c: Include infrun.h. + * record-full.c: Include infrun.h. + * remote-m32r-sdi.c: Include infrun.h. + * remote-mips.c: Include infrun.h. + * remote-notif.c: Include infrun.h. + * remote-sim.c: Include infrun.h. + * remote.c: Include infrun.h. + * reverse.c: Include infrun.h. + * rs6000-tdep.c: Include infrun.h. + * s390-linux-tdep.c: Include infrun.h. + * solib-irix.c: Include infrun.h. + * solib-osf.c: Include infrun.h. + * solib-svr4.c: Include infrun.h. + * target.c: Include infrun.h. + * top.c: Include infrun.h. + * windows-nat.c: Include infrun.h. + * mi/mi-interp.c: Include infrun.h. + * mi/mi-main.c: Include infrun.h. + * python/py-threadevent.c: Include infrun.h. + +2014-05-22 Pedro Alves + * infrun.c (handle_inferior_event): Store the exit code for --return-child-result here, instead of ... (print_exited_reason): ... here. diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index 10bd31b..45ed97b 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -29,6 +29,7 @@ #include "frame-base.h" #include "frame-unwind.h" #include "inferior.h" +#include "infrun.h" #include "gdbcmd.h" #include "gdbcore.h" #include "objfiles.h" diff --git a/gdb/annotate.c b/gdb/annotate.c index 1355733..6cce693 100644 --- a/gdb/annotate.c +++ b/gdb/annotate.c @@ -24,6 +24,7 @@ #include "breakpoint.h" #include "observer.h" #include "inferior.h" +#include "infrun.h" /* Prototypes for local functions. */ diff --git a/gdb/arch-utils.c b/gdb/arch-utils.c index bff1a10..d8da743 100644 --- a/gdb/arch-utils.c +++ b/gdb/arch-utils.c @@ -23,6 +23,7 @@ #include "buildsym.h" #include "gdbcmd.h" #include "inferior.h" /* enum CALL_DUMMY_LOCATION et al. */ +#include "infrun.h" #include #include "regcache.h" #include "gdb_assert.h" diff --git a/gdb/arm-linux-tdep.c b/gdb/arm-linux-tdep.c index 028a95b..65d9084 100644 --- a/gdb/arm-linux-tdep.c +++ b/gdb/arm-linux-tdep.c @@ -41,6 +41,7 @@ #include "glibc-tdep.h" #include "arch-utils.h" #include "inferior.h" +#include "infrun.h" #include "gdbthread.h" #include "symfile.h" diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 7271777..74942b1 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -23,6 +23,7 @@ #include "frame.h" #include "inferior.h" +#include "infrun.h" #include "gdbcmd.h" #include "gdbcore.h" #include diff --git a/gdb/break-catch-sig.c b/gdb/break-catch-sig.c index d510e6d..c41bf33 100644 --- a/gdb/break-catch-sig.c +++ b/gdb/break-catch-sig.c @@ -23,6 +23,7 @@ #include "breakpoint.h" #include "gdbcmd.h" #include "inferior.h" +#include "infrun.h" #include "annotate.h" #include "valprint.h" #include "cli/cli-utils.h" diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index f422998..676c7b8 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -32,6 +32,7 @@ #include "value.h" #include "command.h" #include "inferior.h" +#include "infrun.h" #include "gdbthread.h" #include "target.h" #include "language.h" diff --git a/gdb/common/agent.c b/gdb/common/agent.c index f553b94..54f861a 100644 --- a/gdb/common/agent.c +++ b/gdb/common/agent.c @@ -22,7 +22,7 @@ #else #include "defs.h" #include "target.h" -#include "inferior.h" /* for non_stop */ +#include "infrun.h" #include "objfiles.h" #endif diff --git a/gdb/corelow.c b/gdb/corelow.c index 02caeef..e6a5cb1 100644 --- a/gdb/corelow.c +++ b/gdb/corelow.c @@ -28,6 +28,7 @@ #endif #include "frame.h" /* required by inferior.h */ #include "inferior.h" +#include "infrun.h" #include "symtab.h" #include "command.h" #include "bfd.h" diff --git a/gdb/event-top.c b/gdb/event-top.c index c353f48..f690bc6 100644 --- a/gdb/event-top.c +++ b/gdb/event-top.c @@ -22,6 +22,7 @@ #include "defs.h" #include "top.h" #include "inferior.h" +#include "infrun.h" #include "target.h" #include "terminal.h" /* for job_control */ #include "event-loop.h" diff --git a/gdb/go32-nat.c b/gdb/go32-nat.c index 77843ea..d614911 100644 --- a/gdb/go32-nat.c +++ b/gdb/go32-nat.c @@ -87,6 +87,7 @@ #include "i386-nat.h" #include "inferior.h" +#include "infrun.h" #include "gdbthread.h" #include "gdb_wait.h" #include "gdbcore.h" diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 88fc31f..5e3cc79 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -28,6 +28,7 @@ #include "frame-base.h" #include "frame-unwind.h" #include "inferior.h" +#include "infrun.h" #include "gdbcmd.h" #include "gdbcore.h" #include "gdbtypes.h" diff --git a/gdb/inf-loop.c b/gdb/inf-loop.c index 8d23dc7..f5293ae 100644 --- a/gdb/inf-loop.c +++ b/gdb/inf-loop.c @@ -18,7 +18,8 @@ along with this program. If not, see . */ #include "defs.h" -#include "inferior.h" /* For fetch_inferior_event. */ +#include "inferior.h" +#include "infrun.h" #include "target.h" /* For enum inferior_event_type. */ #include "event-loop.h" #include "event-top.h" diff --git a/gdb/infcall.c b/gdb/infcall.c index 9907263..9a85958 100644 --- a/gdb/infcall.c +++ b/gdb/infcall.c @@ -23,6 +23,7 @@ #include "target.h" #include "regcache.h" #include "inferior.h" +#include "infrun.h" #include "gdb_assert.h" #include "block.h" #include "gdbcore.h" diff --git a/gdb/infcmd.c b/gdb/infcmd.c index 920169d..6511d64 100644 --- a/gdb/infcmd.c +++ b/gdb/infcmd.c @@ -25,6 +25,7 @@ #include "gdbtypes.h" #include "frame.h" #include "inferior.h" +#include "infrun.h" #include "environ.h" #include "value.h" #include "gdbcmd.h" diff --git a/gdb/inferior.h b/gdb/inferior.h index f8d358d..14f4ec8 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -84,35 +84,6 @@ extern const char *get_inferior_io_terminal (void); extern ptid_t inferior_ptid; -/* Are we simulating synchronous execution? This is used in async gdb - to implement the 'run', 'continue' etc commands, which will not - redisplay the prompt until the execution is actually over. */ -extern int sync_execution; - -/* Inferior environment. */ - -extern void clear_proceed_status (void); - -extern void proceed (CORE_ADDR, enum gdb_signal, int); - -extern int sched_multi; - -/* When set, stop the 'step' command if we enter a function which has - no line number information. The normal behavior is that we step - over such function. */ -extern int step_stop_if_no_debug; - -/* If set, the inferior should be controlled in non-stop mode. In - this mode, each thread is controlled independently. Execution - commands apply only to the selected thread by default, and stop - events stop only the thread that had the event -- the other threads - are kept running freely. */ -extern int non_stop; - -/* 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; - extern void generic_mourn_inferior (void); extern CORE_ADDR unsigned_pointer_to_address (struct gdbarch *gdbarch, @@ -128,27 +99,8 @@ extern void address_to_signed_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr); -extern void wait_for_inferior (void); - -extern void prepare_for_detach (void); - -extern void fetch_inferior_event (void *); - -extern void init_wait_for_inferior (void); - extern void reopen_exec_file (void); -/* The `resume' routine should only be called in special circumstances. - Normally, use `proceed', which handles a lot of bookkeeping. */ - -extern void resume (int, enum gdb_signal); - -extern ptid_t user_visible_resume_ptid (int step); - -extern void insert_step_resume_breakpoint_at_sal (struct gdbarch *, - struct symtab_and_line , - struct frame_id); - /* From misc files */ extern void default_print_registers_info (struct gdbarch *gdbarch, @@ -185,49 +137,6 @@ extern void startup_inferior (int); extern char *construct_inferior_arguments (int, char **); -/* From infrun.c */ - -extern unsigned int debug_infrun; - -extern int stop_on_solib_events; - -extern void start_remote (int from_tty); - -extern void normal_stop (void); - -extern void print_stop_event (struct target_waitstatus *ws); - -extern int signal_stop_state (int); - -extern int signal_print_state (int); - -extern int signal_pass_state (int); - -extern int signal_stop_update (int, int); - -extern int signal_print_update (int, int); - -extern int signal_pass_update (int, int); - -extern void get_last_target_status(ptid_t *ptid, - struct target_waitstatus *status); - -extern void follow_inferior_reset_breakpoints (void); - -void set_step_info (struct frame_info *frame, struct symtab_and_line sal); - -/* Clear the convenience variables associated with the exit of the - inferior. Currently, those variables are $_exitcode and - $_exitsignal. */ - -extern void clear_exit_convenience_vars (void); - -/* Returns true if we're trying to step past the instruction at - ADDRESS in ASPACE. */ - -extern int stepping_past_instruction_at (struct address_space *aspace, - CORE_ADDR address); - /* From infcmd.c */ extern void post_create_inferior (struct target_ops *, int); @@ -331,33 +240,6 @@ enum stop_kind STOP_QUIETLY_NO_SIGSTOP }; -/* Reverse execution. */ -enum exec_direction_kind - { - EXEC_FORWARD, - EXEC_REVERSE - }; - -/* The current execution direction. This should only be set to enum - exec_direction_kind values. It is only an int to make it - compatible with make_cleanup_restore_integer. */ -extern int execution_direction; - -/* Save register contents here when executing a "finish" command or are - about to pop a stack dummy frame, if-and-only-if proceed_to_finish is set. - Thus this contains the return value from the called function (assuming - values are returned in a register). */ - -extern struct regcache *stop_registers; - -/* True if we are debugging displaced stepping. */ -extern int debug_displaced; - -/* Dump LEN bytes at BUF in hex to FILE, followed by a newline. */ -void displaced_step_dump_bytes (struct ui_file *file, - const gdb_byte *buf, size_t len); - -struct displaced_step_closure *get_displaced_step_closure_by_addr (CORE_ADDR addr); /* Possible values for gdbarch_call_dummy_location. */ #define ON_STACK 1 @@ -633,20 +515,4 @@ extern int number_of_inferiors (void); extern struct inferior *add_inferior_with_spaces (void); -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, - POSIX.2 `kill' requires that 1,2,3,6,9,14, and 15 work (and using a - numeric signal at all is obsolescent. We are slightly more lenient - and allow 1-15 which should match host signal numbers on most - systems. Use of symbolic signal names is strongly encouraged. */ - -enum gdb_signal gdb_signal_from_command (int num); - #endif /* !defined (INFERIOR_H) */ diff --git a/gdb/infrun.c b/gdb/infrun.c index 6d0bfd8..ec78148 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -19,6 +19,7 @@ along with this program. If not, see . */ #include "defs.h" +#include "infrun.h" #include #include #include "symtab.h" diff --git a/gdb/infrun.h b/gdb/infrun.h new file mode 100644 index 0000000..f0649f3 --- /dev/null +++ b/gdb/infrun.h @@ -0,0 +1,164 @@ +/* Copyright (C) 1986-2014 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#ifndef INFRUN_H +#define INFRUN_H 1 + +#include "ptid.h" +#include "symtab.h" + +struct target_waitstatus; +struct frame_info; +struct address_space; + +/* True if we are debugging run control. */ +extern unsigned int debug_infrun; + +/* True if we are debugging displaced stepping. */ +extern int debug_displaced; + +/* Nonzero if we want to give control to the user when we're notified + of shared library events by the dynamic linker. */ +extern int stop_on_solib_events; + +/* Are we simulating synchronous execution? This is used in async gdb + to implement the 'run', 'continue' etc commands, which will not + redisplay the prompt until the execution is actually over. */ +extern int sync_execution; + +/* True if execution commands resume all threads of all processes by + default; otherwise, resume only threads of the current inferior + process. */ +extern int sched_multi; + +/* When set, stop the 'step' command if we enter a function which has + no line number information. The normal behavior is that we step + over such function. */ +extern int step_stop_if_no_debug; + +/* If set, the inferior should be controlled in non-stop mode. In + this mode, each thread is controlled independently. Execution + commands apply only to the selected thread by default, and stop + events stop only the thread that had the event -- the other threads + are kept running freely. */ +extern int non_stop; + +/* 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; + +/* Reverse execution. */ +enum exec_direction_kind + { + EXEC_FORWARD, + EXEC_REVERSE + }; + +/* The current execution direction. This should only be set to enum + exec_direction_kind values. It is only an int to make it + compatible with make_cleanup_restore_integer. */ +extern int execution_direction; + +/* Save register contents here when executing a "finish" command or + are about to pop a stack dummy frame, if-and-only-if + proceed_to_finish is set. Thus this contains the return value from + the called function (assuming values are returned in a + register). */ +extern struct regcache *stop_registers; + +extern void start_remote (int from_tty); + +extern void clear_proceed_status (void); + +extern void proceed (CORE_ADDR, enum gdb_signal, int); + +/* The `resume' routine should only be called in special circumstances. + Normally, use `proceed', which handles a lot of bookkeeping. */ +extern void resume (int, enum gdb_signal); + +extern ptid_t user_visible_resume_ptid (int step); + +extern void wait_for_inferior (void); + +extern void normal_stop (void); + +extern void get_last_target_status (ptid_t *ptid, + struct target_waitstatus *status); + +extern void prepare_for_detach (void); + +extern void fetch_inferior_event (void *); + +extern void init_wait_for_inferior (void); + +extern void insert_step_resume_breakpoint_at_sal (struct gdbarch *, + struct symtab_and_line , + struct frame_id); + +extern void follow_inferior_reset_breakpoints (void); + +/* Returns true if we're trying to step past the instruction at + ADDRESS in ASPACE. */ +extern int stepping_past_instruction_at (struct address_space *aspace, + CORE_ADDR address); + +extern void set_step_info (struct frame_info *frame, + struct symtab_and_line sal); + +extern void print_stop_event (struct target_waitstatus *ws); + +extern int signal_stop_state (int); + +extern int signal_print_state (int); + +extern int signal_pass_state (int); + +extern int signal_stop_update (int, int); + +extern int signal_print_update (int, int); + +extern int signal_pass_update (int, int); + +extern void update_signals_program_target (void); + +/* Clear the convenience variables associated with the exit of the + inferior. Currently, those variables are $_exitcode and + $_exitsignal. */ +extern void clear_exit_convenience_vars (void); + +/* Dump LEN bytes at BUF in hex to FILE, followed by a newline. */ +extern void displaced_step_dump_bytes (struct ui_file *file, + const gdb_byte *buf, size_t len); + +extern struct displaced_step_closure *get_displaced_step_closure_by_addr + (CORE_ADDR addr); + +extern void update_observer_mode (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, + POSIX.2 `kill' requires that 1,2,3,6,9,14, and 15 work (and using a + numeric signal at all is obsolescent. We are slightly more lenient + and allow 1-15 which should match host signal numbers on most + systems. Use of symbolic signal names is strongly encouraged. */ +enum gdb_signal gdb_signal_from_command (int num); + +#endif /* INFRUN_H */ diff --git a/gdb/linux-fork.c b/gdb/linux-fork.c index 9aece37..b9f8cfb 100644 --- a/gdb/linux-fork.c +++ b/gdb/linux-fork.c @@ -20,6 +20,7 @@ #include "defs.h" #include "arch-utils.h" #include "inferior.h" +#include "infrun.h" #include "regcache.h" #include "gdbcmd.h" #include "infcall.h" diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index f60d54c..767dcc9 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -19,6 +19,7 @@ #include "defs.h" #include "inferior.h" +#include "infrun.h" #include "target.h" #include "nat/linux-nat.h" #include "nat/linux-waitpid.h" diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c index c0f7b1a..c79d994 100644 --- a/gdb/linux-thread-db.c +++ b/gdb/linux-thread-db.c @@ -30,6 +30,7 @@ #include "gdbcmd.h" #include "gdbthread.h" #include "inferior.h" +#include "infrun.h" #include "symfile.h" #include "objfiles.h" #include "target.h" diff --git a/gdb/mi/mi-interp.c b/gdb/mi/mi-interp.c index e1fbb5e..99479cc 100644 --- a/gdb/mi/mi-interp.c +++ b/gdb/mi/mi-interp.c @@ -23,6 +23,7 @@ #include "event-top.h" #include "event-loop.h" #include "inferior.h" +#include "infrun.h" #include "ui-out.h" #include "top.h" #include "exceptions.h" diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index 1598af0..9ab4886 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -23,6 +23,7 @@ #include "arch-utils.h" #include "target.h" #include "inferior.h" +#include "infrun.h" #include #include "exceptions.h" #include "top.h" diff --git a/gdb/monitor.c b/gdb/monitor.c index c46e2df..25742ac 100644 --- a/gdb/monitor.c +++ b/gdb/monitor.c @@ -50,6 +50,7 @@ #include "monitor.h" #include "gdbcmd.h" #include "inferior.h" +#include "infrun.h" #include "gdb_regex.h" #include "srec.h" #include "regcache.h" diff --git a/gdb/nto-tdep.c b/gdb/nto-tdep.c index a160a9e..1d0f8a1 100644 --- a/gdb/nto-tdep.c +++ b/gdb/nto-tdep.c @@ -25,6 +25,7 @@ #include "nto-tdep.h" #include "top.h" #include "inferior.h" +#include "infrun.h" #include "gdbarch.h" #include "bfd.h" #include "elf-bfd.h" diff --git a/gdb/procfs.c b/gdb/procfs.c index 80b0a6a..cd3301a 100644 --- a/gdb/procfs.c +++ b/gdb/procfs.c @@ -22,6 +22,7 @@ #include "defs.h" #include "inferior.h" +#include "infrun.h" #include "target.h" #include "gdbcore.h" #include "elf-bfd.h" /* for elfcore_write_* */ diff --git a/gdb/python/py-threadevent.c b/gdb/python/py-threadevent.c index 43fd83d..c64975c 100644 --- a/gdb/python/py-threadevent.c +++ b/gdb/python/py-threadevent.c @@ -17,6 +17,7 @@ #include "defs.h" #include "py-event.h" +#include "infrun.h" /* thread events can either be thread specific or process wide. If gdb is running in non-stop mode then the event is thread specific, otherwise diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index d768225..2304020 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -35,6 +35,7 @@ #include "regcache.h" #include "frame-unwind.h" #include "hashtab.h" +#include "infrun.h" /* The target_ops of record-btrace. */ static struct target_ops record_btrace_ops; diff --git a/gdb/record-full.c b/gdb/record-full.c index 39db910..a496cf3 100644 --- a/gdb/record-full.c +++ b/gdb/record-full.c @@ -35,6 +35,7 @@ #include "inf-loop.h" #include "gdb_bfd.h" #include "observer.h" +#include "infrun.h" #include diff --git a/gdb/remote-m32r-sdi.c b/gdb/remote-m32r-sdi.c index 0c23403..9c57171 100644 --- a/gdb/remote-m32r-sdi.c +++ b/gdb/remote-m32r-sdi.c @@ -24,6 +24,7 @@ #include "gdbcmd.h" #include "gdbcore.h" #include "inferior.h" +#include "infrun.h" #include "target.h" #include "regcache.h" #include diff --git a/gdb/remote-mips.c b/gdb/remote-mips.c index 383d31c..7f0d957 100644 --- a/gdb/remote-mips.c +++ b/gdb/remote-mips.c @@ -22,6 +22,7 @@ #include "defs.h" #include "inferior.h" +#include "infrun.h" #include "bfd.h" #include "symfile.h" #include "gdbcmd.h" diff --git a/gdb/remote-notif.c b/gdb/remote-notif.c index d3e1b26..650a0f8 100644 --- a/gdb/remote-notif.c +++ b/gdb/remote-notif.c @@ -38,6 +38,7 @@ #include "event-loop.h" #include "target.h" #include "inferior.h" +#include "infrun.h" #include "gdbcmd.h" #include diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index 3bda043..2e7db4b 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -22,6 +22,7 @@ #include "defs.h" #include "inferior.h" +#include "infrun.h" #include "value.h" #include #include diff --git a/gdb/remote.c b/gdb/remote.c index 964bd41..6774d84 100644 --- a/gdb/remote.c +++ b/gdb/remote.c @@ -24,6 +24,7 @@ #include #include #include "inferior.h" +#include "infrun.h" #include "bfd.h" #include "symfile.h" #include "exceptions.h" diff --git a/gdb/reverse.c b/gdb/reverse.c index 30a0328..defa8b6 100644 --- a/gdb/reverse.c +++ b/gdb/reverse.c @@ -25,6 +25,7 @@ #include "cli/cli-decode.h" #include "cli/cli-utils.h" #include "inferior.h" +#include "infrun.h" #include "regcache.h" /* User interface: diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index dbe3aa2..c4ce51c 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -20,6 +20,7 @@ #include "defs.h" #include "frame.h" #include "inferior.h" +#include "infrun.h" #include "symtab.h" #include "target.h" #include "gdbcore.h" diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c index 9ab5c70..ea743b5 100644 --- a/gdb/s390-linux-tdep.c +++ b/gdb/s390-linux-tdep.c @@ -24,6 +24,7 @@ #include "arch-utils.h" #include "frame.h" #include "inferior.h" +#include "infrun.h" #include "symtab.h" #include "target.h" #include "gdbcore.h" diff --git a/gdb/solib-irix.c b/gdb/solib-irix.c index 6266ee0..9c0838f 100644 --- a/gdb/solib-irix.c +++ b/gdb/solib-irix.c @@ -30,6 +30,7 @@ #include "gdbcore.h" #include "target.h" #include "inferior.h" +#include "infrun.h" #include "gdbthread.h" #include "solist.h" diff --git a/gdb/solib-osf.c b/gdb/solib-osf.c index 90a26e8..8777715 100644 --- a/gdb/solib-osf.c +++ b/gdb/solib-osf.c @@ -52,6 +52,7 @@ #include "objfiles.h" #include "target.h" #include "inferior.h" +#include "infrun.h" #include "gdbthread.h" #include "solist.h" #include "solib.h" diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c index 0da5692..af9d648 100644 --- a/gdb/solib-svr4.c +++ b/gdb/solib-svr4.c @@ -30,6 +30,7 @@ #include "gdbcore.h" #include "target.h" #include "inferior.h" +#include "infrun.h" #include "regcache.h" #include "gdbthread.h" #include "observer.h" diff --git a/gdb/target.c b/gdb/target.c index 07e3c2b..cf86e73 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -27,6 +27,7 @@ #include "gdbcmd.h" #include "symtab.h" #include "inferior.h" +#include "infrun.h" #include "bfd.h" #include "symfile.h" #include "objfiles.h" diff --git a/gdb/top.c b/gdb/top.c index 186b05f..d98740a 100644 --- a/gdb/top.c +++ b/gdb/top.c @@ -25,6 +25,7 @@ #include "cli/cli-decode.h" #include "symtab.h" #include "inferior.h" +#include "infrun.h" #include "exceptions.h" #include #include "target.h" diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 88844fe..16f4efb 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -24,6 +24,7 @@ #include "defs.h" #include "frame.h" /* required by inferior.h */ #include "inferior.h" +#include "infrun.h" #include "target.h" #include "exceptions.h" #include "gdbcore.h"