aboutsummaryrefslogtreecommitdiff
path: root/gdb/inferior.h
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-10-21 20:41:50 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-10-21 20:41:50 +0000
commit100f92e2dea21ccb7de8fb0cb3a9b70d43d55bad (patch)
tree29f70f683bed980e1fec4d7cf5c1325bf63fed81 /gdb/inferior.h
parentefa0c22e67c2858aec856d734b2a89da68cde606 (diff)
downloadgdb-100f92e2dea21ccb7de8fb0cb3a9b70d43d55bad.zip
gdb-100f92e2dea21ccb7de8fb0cb3a9b70d43d55bad.tar.gz
gdb-100f92e2dea21ccb7de8fb0cb3a9b70d43d55bad.tar.bz2
* Makefile.in (c-exp.tab.o): Remove notice about shift/reduce conflicts
which no longer occur. gcc -Wall lint: * findvar.c (symbol_read_needs_frame), corelow.c (ignore), inflow.c (gdb_has_a_terminal): Make sure to return a value. * regex.h: Declare re_set_syntax. * printcmd.c: Include valprint.h. * infcmd.c, exec.c, maint.c, core.c: Include language.h. * maint.c: Include expression.h. * infrun.c, fork-child.c, corelow.c, inflow.c: Include thread.h. * inftarg.c: Include command.h. * coredep.c: Include value.h. * c-exp.y, m2-exp.y, ch-exp.y: Include bfd.h, symfile.h and objfiles.h. * ch-typeprint.c: Include typeprint.h. * ch-valprint.c: Include c-lang.h. * nlmread.c: Include buildsym.h. * environ.c: Include gdbcore.h. Only include defs.h once. (set_in_environ): Cast const char * to char * when passing to set_gnutarget. Remove unused variables: * printcmd.c (printf_command): args_to_vprintf. * coffread.c (coff_symfile_init): strsection. Move variables to within the #ifdefs where they are used: * symtab.c (gdb_mangle_name): opname. * inftarg.c (child_attach): pid and exec_file. * inftarg.c (child_detach): siggnal. * objfiles.c (allocate_objfile): mapto, md, and fd. * objfiles.c (free_objfile): mmfd. * infrun.c (wait_for_inferior): Include BPSTAT_WHAT_LAST in switch. * infrun.c (wait_for_inferior): Remove unused same_pid label. * inferior.h: Declare set_sigint_trap and clear_sigint_trap. * parser-defs.h: Declare write_exp_elt_block. * stabsread.h: Declare elfstab_offset_sections and coffstab_build_psymtabs.
Diffstat (limited to 'gdb/inferior.h')
-rw-r--r--gdb/inferior.h45
1 files changed, 31 insertions, 14 deletions
diff --git a/gdb/inferior.h b/gdb/inferior.h
index f0dddda..6fdad93 100644
--- a/gdb/inferior.h
+++ b/gdb/inferior.h
@@ -36,9 +36,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
* control variables.
*/
struct inferior_status {
- int pc_changed;
int stop_signal;
- int stop_pc;
+ CORE_ADDR stop_pc;
FRAME_ADDR stop_frame_address;
bpstat stop_bpstat;
int stop_step;
@@ -55,6 +54,12 @@ struct inferior_status {
FRAME_ADDR selected_frame_address;
int selected_level;
char stop_registers[REGISTER_BYTES];
+
+ /* These are here because if call_function_by_hand has written some
+ registers and then decides to call error(), we better not have changed
+ any registers. */
+ char registers[REGISTER_BYTES];
+
int breakpoint_proceeded;
int restore_stack_info;
int proceed_to_finish;
@@ -66,6 +71,9 @@ save_inferior_status PARAMS ((struct inferior_status *, int));
extern void
restore_inferior_status PARAMS ((struct inferior_status *));
+extern void set_sigint_trap PARAMS ((void));
+extern void clear_sigint_trap PARAMS ((void));
+
/* File name for default use for standard in/out in the inferior. */
extern char *inferior_io_terminal;
@@ -98,8 +106,7 @@ generic_mourn_inferior PARAMS ((void));
extern void
terminal_ours PARAMS ((void));
-extern void
-run_stack_dummy PARAMS ((char*, CORE_ADDR, char [REGISTER_BYTES]));
+extern int run_stack_dummy PARAMS ((CORE_ADDR, char [REGISTER_BYTES]));
extern CORE_ADDR
read_pc PARAMS ((void));
@@ -171,7 +178,7 @@ void
detach PARAMS ((int));
extern void
-child_resume PARAMS ((int, int));
+child_resume PARAMS ((int, int, int));
#ifndef PTRACE_ARG3_TYPE
#define PTRACE_ARG3_TYPE int /* Correct definition for most systems. */
@@ -260,7 +267,12 @@ extern int stopped_by_random_signal;
/* Range to single step within.
If this is nonzero, respond to a single-step signal
- by continuing to step if the pc is in this range. */
+ by continuing to step if the pc is in this range.
+
+ If step_range_start and step_range_end are both 1, it means to step for
+ a single instruction (FIXME: it might clean up wait_for_inferior in a
+ minor way if this were changed to the address of the instruction and
+ that address plus one. But maybe not.). */
extern CORE_ADDR step_range_start; /* Inclusive */
extern CORE_ADDR step_range_end; /* Exclusive */
@@ -301,11 +313,6 @@ extern int proceed_to_finish;
extern char stop_registers[REGISTER_BYTES];
-/* Nonzero if pc has been changed by the debugger
- since the inferior stopped. */
-
-extern int pc_changed;
-
/* Nonzero if the child process in inferior_pid was attached rather
than forked. */
@@ -338,6 +345,7 @@ extern int attach_flag;
#define ON_STACK 1
#define BEFORE_TEXT_END 2
#define AFTER_TEXT_END 3
+#define AT_ENTRY_POINT 4
#if !defined (CALL_DUMMY_LOCATION)
#define CALL_DUMMY_LOCATION ON_STACK
@@ -352,14 +360,16 @@ extern CORE_ADDR text_end;
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((pc) >= text_end - CALL_DUMMY_LENGTH \
&& (pc) <= text_end + DECR_PC_AFTER_BREAK)
-#else /* Not before text_end. */
+#endif /* Before text_end. */
+
#if CALL_DUMMY_LOCATION == AFTER_TEXT_END
extern CORE_ADDR text_end;
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((pc) >= text_end \
&& (pc) <= text_end + CALL_DUMMY_LENGTH + DECR_PC_AFTER_BREAK)
-#else /* On stack. */
+#endif /* After text_end. */
+#if CALL_DUMMY_LOCATION == ON_STACK
/* Is the PC in a call dummy? SP and FRAME_ADDRESS are the bottom and
top of the stack frame which we are checking, where "bottom" and
"top" refer to some section of memory which contains the code for
@@ -381,7 +391,14 @@ extern CORE_ADDR text_end;
#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
((sp) INNER_THAN (pc) && (frame_address != 0) && (pc) INNER_THAN (frame_address))
#endif /* On stack. */
-#endif /* Not before text_end. */
+
+#if CALL_DUMMY_LOCATION == AT_ENTRY_POINT
+extern CORE_ADDR
+entry_point_address PARAMS ((void));
+#define PC_IN_CALL_DUMMY(pc, sp, frame_address) \
+ ((pc) >= entry_point_address () \
+ && (pc) <= (entry_point_address () + DECR_PC_AFTER_BREAK))
+#endif /* At entry point. */
#endif /* No PC_IN_CALL_DUMMY. */
#endif /* !defined (INFERIOR_H) */