From 45741a9c329a5afa111f7842ba980bd6a106e020 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 22 May 2014 12:29:11 +0100 Subject: Add new infrun.h header. 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/infrun.h | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 gdb/infrun.h (limited to 'gdb/infrun.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 */ -- cgit v1.1