home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / usr.bin / gdb / inferior.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-05-08  |  4.1 KB  |  143 lines

  1. /*-
  2.  * This code is derived from software copyrighted by the Free Software
  3.  * Foundation.
  4.  *
  5.  * Modified 1991 by Donn Seeley at UUNET Technologies, Inc.
  6.  * Modified 1990 by Van Jacobson at Lawrence Berkeley Laboratory.
  7.  *
  8.  *    @(#)inferior.h    6.3 (Berkeley) 5/8/91
  9.  */
  10.  
  11. /* Variables that describe the inferior process running under GDB:
  12.    Where it is, why it stopped, and how to step it.
  13.    Copyright (C) 1986, 1989 Free Software Foundation, Inc.
  14.  
  15. This file is part of GDB.
  16.  
  17. GDB is free software; you can redistribute it and/or modify
  18. it under the terms of the GNU General Public License as published by
  19. the Free Software Foundation; either version 1, or (at your option)
  20. any later version.
  21.  
  22. GDB is distributed in the hope that it will be useful,
  23. but WITHOUT ANY WARRANTY; without even the implied warranty of
  24. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  25. GNU General Public License for more details.
  26.  
  27. You should have received a copy of the GNU General Public License
  28. along with GDB; see the file COPYING.  If not, write to
  29. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  30.  
  31. /*
  32.  * Structure in which to save the status of the inferior.  Save
  33.  * through "save_inferior_status", restore through
  34.  * "restore_inferior_status".
  35.  * This pair of routines should be called around any transfer of
  36.  * control to the inferior which you don't want showing up in your
  37.  * control variables.
  38.  */
  39. struct inferior_status {
  40.   int pc_changed;
  41.   int stop_signal;
  42.   int stop_pc;
  43.   int stop_frame_address;
  44.   int stop_breakpoint;
  45.   int stop_step;
  46.   int stop_stack_dummy;
  47.   int stopped_by_random_signal;
  48.   int trap_expected;
  49.   CORE_ADDR step_range_start;
  50.   CORE_ADDR step_range_end;
  51.   FRAME_ADDR step_frame_address;
  52.   int step_over_calls;
  53.   CORE_ADDR step_resume_break_address;
  54.   int stop_after_trap;
  55.   int stop_after_attach;
  56.   FRAME_ADDR selected_frame_address;
  57.   int selected_level;
  58.   struct command_line *breakpoint_commands;
  59.   char register_context[REGISTER_BYTES];
  60.   int restore_stack_info;
  61. };
  62.  
  63. void save_inferior_status (), restore_inferior_status ();
  64.  
  65. /* File name for default use for standard in/out in the inferior.  */
  66.  
  67. extern char *inferior_io_terminal;
  68.  
  69. /* Pid of our debugged inferior, or 0 if no inferior now.  */
  70.  
  71. extern int inferior_pid;
  72.  
  73. /* Nonzero if debugging a remote machine via a serial link or ethernet.  */
  74. extern int remote_debugging;
  75.  
  76. /* Routines for use in remote debugging.  Documented in remote.c.  */
  77. int remote_read_inferior_memory ();
  78. int remote_write_inferior_memory ();
  79.  
  80. /* Last signal that the inferior received (why it stopped).  */
  81.  
  82. extern int stop_signal;
  83.  
  84. /* Address at which inferior stopped.  */
  85.  
  86. extern CORE_ADDR stop_pc;
  87.  
  88. /* Stack frame when program stopped.  */
  89.  
  90. extern FRAME_ADDR stop_frame_address;
  91.  
  92. /* Number of breakpoint it stopped at, or 0 if none.  */
  93.  
  94. extern int stop_breakpoint;
  95.  
  96. /* Nonzero if stopped due to a step command.  */
  97.  
  98. extern int stop_step;
  99.  
  100. /* Nonzero if stopped due to completion of a stack dummy routine.  */
  101.  
  102. extern int stop_stack_dummy;
  103.  
  104. /* Nonzero if program stopped due to a random (unexpected) signal in
  105.    inferior process.  */
  106.  
  107. extern int stopped_by_random_signal;
  108.  
  109. /* Range to single step within.
  110.    If this is nonzero, respond to a single-step signal
  111.    by continuing to step if the pc is in this range.  */
  112.  
  113. extern CORE_ADDR step_range_start; /* Inclusive */
  114. extern CORE_ADDR step_range_end; /* Exclusive */
  115.  
  116. /* Stack frame address as of when stepping command was issued.
  117.    This is how we know when we step into a subroutine call,
  118.    and how to set the frame for the breakpoint used to step out.  */
  119.  
  120. extern FRAME_ADDR step_frame_address;
  121.  
  122. /* 1 means step over all subroutine calls.
  123.    -1 means step over calls to undebuggable functions.  */
  124.  
  125. extern int step_over_calls;
  126.  
  127. /* If stepping, nonzero means step count is > 1
  128.    so don't print frame next time inferior stops
  129.    if it stops due to stepping.  */
  130.  
  131. extern int step_multi;
  132.  
  133. /* Save register contents here when about to pop a stack dummy frame.  */
  134.  
  135. extern char stop_registers[REGISTER_BYTES];
  136.  
  137. /* Nonzero if pc has been changed by the debugger
  138.    since the inferior stopped.  */
  139.  
  140. extern int pc_changed;
  141.  
  142. long read_memory_integer ();
  143.