diff options
Diffstat (limited to 'gdb/infrun.h')
-rw-r--r-- | gdb/infrun.h | 164 |
1 files changed, 164 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. */ + +#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 */ |