This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] No resuming while tfinding


On Thursday 18 March 2010 12:19:11, Pedro Alves wrote:
> Hmm, it seems I missed adding ensure_not_running to those then.  Also, this
> in both until_command and advance_command:
> 
>     if (!target_has_execution)
>       error (_("The program is not running."));
> 
> could be replaced by ERROR_NO_INFERIOR.

This is fixed now with the patch below.  Tested on x86_64-linux and
checked in.

-- 
Pedro Alves

2010-03-18  Pedro Alves  <pedro@codesourcery.com>

	gdb/
	* infcmd.c (until_command): Use ERROR_NO_INFERIOR.  Ensure there's
	a valid selected thread, and that it is not running.
	(advance_command): Ditto.
	(finish_command): Ditto.

	gdb/testsuite/
	* gdb.base/default.exp: Adjust.

---
 gdb/infcmd.c                       |   17 +++++++++--------
 gdb/testsuite/gdb.base/default.exp |    6 +++---
 2 files changed, 12 insertions(+), 11 deletions(-)

Index: src/gdb/infcmd.c
===================================================================
--- src.orig/gdb/infcmd.c	2010-03-18 12:33:16.000000000 +0000
+++ src/gdb/infcmd.c	2010-03-18 13:01:35.000000000 +0000
@@ -1274,10 +1274,10 @@ until_command (char *arg, int from_tty)
 {
   int async_exec = 0;
 
-  if (!target_has_execution)
-    error (_("The program is not running."));
-
+  ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
+  ensure_valid_thread ();
+  ensure_not_running ();
 
   /* Find out whether we must run in the background. */
   if (arg != NULL)
@@ -1307,10 +1307,10 @@ advance_command (char *arg, int from_tty
 {
   int async_exec = 0;
 
-  if (!target_has_execution)
-    error (_("The program is not running."));
-
+  ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
+  ensure_valid_thread ();
+  ensure_not_running ();
 
   if (arg == NULL)
     error_no_arg (_("a location"));
@@ -1565,7 +1565,10 @@ finish_command (char *arg, int from_tty)
 
   int async_exec = 0;
 
+  ERROR_NO_INFERIOR;
   ensure_not_tfind_mode ();
+  ensure_valid_thread ();
+  ensure_not_running ();
 
   /* Find out whether we must run in the background.  */
   if (arg != NULL)
@@ -1590,8 +1593,6 @@ finish_command (char *arg, int from_tty)
 
   if (arg)
     error (_("The \"finish\" command does not take any arguments."));
-  if (!target_has_execution)
-    error (_("The program is not running."));
 
   frame = get_prev_frame (get_selected_frame (_("No selected frame.")));
   if (frame == 0)
Index: src/gdb/testsuite/gdb.base/default.exp
===================================================================
--- src.orig/gdb/testsuite/gdb.base/default.exp	2010-03-18 12:56:43.000000000 +0000
+++ src/gdb/testsuite/gdb.base/default.exp	2010-03-18 12:58:07.000000000 +0000
@@ -250,7 +250,7 @@ gdb_expect {
 }
 
 #test finish
-gdb_test "finish" "The program is not running." "finish"
+gdb_test "finish" "The program is not being run." "finish"
 #test forward-search
 # The message here comes from the regexp library, not gdb, and so can
 # vary on different systems.
@@ -753,9 +753,9 @@ gdb_test "tbreak" "No default breakpoint
 #test tty
 gdb_test "tty" "Argument required .filename to set it to\..*" "tty"
 #test until "u" abbreviation
-gdb_test "u" "The program is not running." "until \"u\" abbreviation"
+gdb_test "u" "The program is not being run." "until \"u\" abbreviation"
 #test until
-gdb_test "until" "The program is not running." "until"
+gdb_test "until" "The program is not being run." "until"
 #test undisplay
 # FIXME -- need to dump full output to detailed log
 send_gdb "undisplay\n"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]