home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / disp-read.h < prev    next >
C/C++ Source or Header  |  1998-10-23  |  7KB  |  225 lines

  1. // $Id: disp-read.h,v 1.34 1998/10/23 21:14:15 zeller Exp $
  2. // Helper functions to process GDB display output
  3.  
  4. // Copyright (C) 1995 Technische Universitaet Braunschweig, Germany.
  5. // Written by Dorothea Luetkehaus <luetke@ips.cs.tu-bs.de>.
  6. // 
  7. // This file is part of DDD.
  8. // 
  9. // DDD is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. // 
  14. // DDD is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. // See the GNU General Public License for more details.
  18. // 
  19. // You should have received a copy of the GNU General Public
  20. // License along with DDD -- see the file COPYING.
  21. // If not, write to the Free Software Foundation, Inc.,
  22. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23. // 
  24. // DDD is the data display debugger.
  25. // For details, see the DDD World-Wide-Web page, 
  26. // `http://www.cs.tu-bs.de/softech/ddd/',
  27. // or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  28.  
  29.  
  30. #ifndef _DDD_disp_read_h
  31. #define _DDD_disp_read_h
  32.  
  33. #ifdef __GNUG__
  34. #pragma interface
  35. #endif
  36.  
  37. // Misc includes
  38. #include "strclass.h"
  39. #include "bool.h"
  40.  
  41. // DDD includes
  42. #include "GDBAgent.h"
  43.  
  44. //----------------------------------------------------------------------------
  45. // Recognize most important commands
  46. //----------------------------------------------------------------------------
  47.  
  48. // True if CMD creates a single display.
  49. bool is_single_display_cmd(const string& cmd, GDBAgent *gdb);
  50.  
  51. // True if CMD has no side effects.
  52. bool is_nop_cmd(const string& cmd);
  53.  
  54. // True if CMD creates a data display
  55. bool is_display_cmd(const string& cmd);
  56.  
  57. // True if CMD changes a data display
  58. bool is_data_cmd(const string& cmd);
  59.  
  60. // True if CMD deletes a data display
  61. bool is_delete_display_cmd(const string& cmd);
  62.  
  63. // True if CMD disables a data display
  64. bool is_disable_display_cmd(const string& cmd);
  65.  
  66. // True if CMD enables a data display
  67. bool is_enable_display_cmd(const string& cmd);
  68.  
  69. // True if CMD executes debuggee and shows new displays
  70. bool is_running_cmd(const string& cmd, GDBAgent *gdb);
  71.  
  72. // True if CMD changes current execution position
  73. bool is_pc_cmd(const string& cmd);
  74.  
  75. // True if CMD starts debuggee
  76. bool is_run_cmd(const string& cmd);
  77.  
  78. // True if CMD kills debuggee
  79. bool is_kill_cmd(const string& cmd);
  80.  
  81. // True if CMD sets debuggee arguments.
  82. bool is_set_args_cmd(const string& cmd);
  83.  
  84. // True if CMD changes the current program frame
  85. bool is_frame_cmd(const string& cmd);
  86. bool is_up_cmd(const string& cmd);   // ... towards caller
  87. bool is_down_cmd(const string& cmd); // ... towards called
  88.  
  89. // True if CMD resets process memory.
  90. bool is_core_cmd(const string& cmd);
  91.  
  92. // True if CMD changes the current thread
  93. bool is_thread_cmd(const string& cmd);
  94.  
  95. // True if CMD changes variable values.
  96. bool is_assign_cmd(const string& cmd, GDBAgent *gdb);
  97.  
  98. // True if CMD changes debugger settings.
  99. bool is_setting_cmd(const string& cmd);
  100.  
  101. // True if CMD changes debugger signal handling.
  102. bool is_handle_cmd(const string& cmd);
  103.  
  104. // True if CMD changes debugger command definitions.
  105. bool is_define_cmd(const string& cmd);
  106.  
  107. // True if CMD changes the current file.
  108. bool is_file_cmd(const string& cmd, GDBAgent *gdb);
  109.  
  110. // True if CMD changes breakpoints.
  111. bool is_break_cmd(const string& cmd);
  112.  
  113. // True if CMD lists source.
  114. bool is_list_cmd(const string& cmd);
  115.  
  116. // True if CMD changes the current position.
  117. bool is_lookup_cmd(const string& cmd);
  118.  
  119. // True if CMD changes the current directory
  120. bool is_cd_cmd(const string& cmd);
  121.  
  122. // True if CMD changes the current class path
  123. bool is_use_cmd(const string& cmd);
  124.  
  125. // True if CMD is a make command
  126. bool is_make_cmd(const string& cmd);
  127.  
  128. // True if CMD is a quit command
  129. bool is_quit_cmd(const string& cmd);
  130.  
  131. // True if CMD is an internal graph command.
  132. bool is_graph_cmd(const string& cmd);
  133.  
  134. // True if CMD is an internal `graph refresh' command.
  135. bool is_refresh_cmd(const string& cmd);
  136.  
  137. // True if CMD is a `print' command.
  138. bool is_print_cmd(const string& cmd, GDBAgent *gdb);
  139.  
  140. // True if CMD is some other builtin (not user-defined) command.
  141. bool is_other_builtin_cmd(const string& cmd, GDBAgent *gdb);
  142.  
  143. // Return the string after a `display' command.
  144. string get_display_expression(const string& cmd);
  145.  
  146. // Return the string after a `break' command
  147. string get_break_expression(const string& cmd);
  148.  
  149. // Return the variable in an assignment command
  150. string get_assign_variable(const string& cmd);
  151.  
  152. // True if ARG has the form `FILE:LINE'
  153. bool is_file_pos(const string& arg);
  154.  
  155. // True if CMD begins recording commands 
  156. bool starts_recording(const string& cmd);
  157.  
  158. // True if CMD ends recording commands
  159. bool ends_recording(const string& cmd);
  160.  
  161.  
  162. //----------------------------------------------------------------------------
  163. // Handle `display' output
  164. //----------------------------------------------------------------------------
  165.  
  166. // True if GDB_ANSWER contains a display expression.
  167. bool contains_display (const string& gdb_answer, GDBAgent *gdb);
  168.  
  169. // Return index of first display expr in GDB_ANSWER; -1, if none is found.
  170. int display_index (const string& gdb_answer, GDBAgent *gdb);
  171.  
  172. // Return index of first possible beginning of display expr in GDB_ANSWER.
  173. int possible_begin_of_display (string gdb_answer, GDBAgent *gdb);
  174.  
  175. // Return next display expr from DISPLAYS; remove it from DISPLAYS.
  176. string read_next_display (string& displays, GDBAgent *gdb);
  177.  
  178. // Remove and return "NR: NAME = " from DISPLAY.
  179. string get_disp_value_str (const string& display, GDBAgent *gdb);
  180.  
  181.  
  182. //----------------------------------------------------------------------------
  183. // Recognize expressions in `info display'
  184. //----------------------------------------------------------------------------
  185.  
  186. // Return first/next display info from GDB_ANSWER; "" if done.
  187. string read_first_disp_info (string& gdb_answer, GDBAgent *gdb);
  188. string read_next_disp_info (string& gdb_answer, GDBAgent *gdb);
  189.  
  190. // Remove and return "NR: " from DISPLAY.
  191. string get_info_disp_str (string& display, GDBAgent *gdb);
  192.  
  193. // Check whether `disabled' entry in INFO_DISP_STR indicates an enabled display
  194. bool disp_is_disabled (const string& info_disp_str, GDBAgent *gdb);
  195.  
  196.  
  197.  
  198. //----------------------------------------------------------------------------
  199. // Handle `display' output
  200. //----------------------------------------------------------------------------
  201.  
  202. // Remove and return display number from DISPLAY
  203. string  read_disp_nr_str (string& display, GDBAgent *gdb);
  204.  
  205. // Remove and return display name from DISPLAY
  206. string  read_disp_name   (string& display, GDBAgent *gdb);
  207.  
  208. // True if some display has been disabled
  209. bool is_disabling (const string& value, GDBAgent *gdb);
  210.  
  211. // True if VALUE is an valid value (i.e., not an error message)
  212. bool is_valid(const string& value, GDBAgent *gdb);
  213.  
  214.  
  215.  
  216. //-----------------------------------------------------------------------------
  217. // Handle `where' output
  218. //-----------------------------------------------------------------------------
  219.  
  220. // Fetch current scope from GDB `where' output (a function name)
  221. string get_scope(const string& where_output);
  222.  
  223. #endif // _DDD_disp_read_h
  224. // DON'T ADD ANYTHING BEHIND THIS #endif
  225.