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]

[patch 2/2] Mostly code cleanup: stack.c: TRY_CATCH simplifications


Hi,

after [patch 1/2] some constructs become obviously redundant.

This is a "code cleanup" except for the RETURN_MASK_ALL change.  I haven't
found any specific reason in the mail thread introducing it and neither any
reason in the current code, IMO it was only a mistake.

No regressions on {x86_64,x86_64-m32,i686}-fedora16pre-linux-gnu.
I will check it in in some time.


Thanks,
Jan


gdb/
2011-07-31  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* stack.c (do_gdb_disassembly): Use RETURN_MASK_ERROR, simplify the
	exception_print code path.
	(backtrace_command): Remove variable e.  Protect arg by make_cleanup in
	advance.  Simplify memset.  Remove TRY_CATCH.  Remove explicit xfree.
	(backtrace_full_command):  Remove variable e.  Remove TRY_CATCH.

--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -434,15 +434,17 @@ do_gdb_disassembly (struct gdbarch *gdbarch,
 {
   volatile struct gdb_exception exception;
 
-  TRY_CATCH (exception, RETURN_MASK_ALL)
+  TRY_CATCH (exception, RETURN_MASK_ERROR)
     {
       gdb_disassembly (gdbarch, uiout, 0, DISASSEMBLY_RAW_INSN, how_many, low,
 		       high);
     }
-  /* If an exception was thrown while doing the disassembly, print
-     the error message, to give the user a clue of what happened.  */
-  if (exception.reason == RETURN_ERROR)
-    exception_print (gdb_stderr, exception);
+  if (exception.reason < 0)
+    {
+      /* If an exception was thrown while doing the disassembly, print
+	 the error message, to give the user a clue of what happened.  */
+      exception_print (gdb_stderr, exception);
+    }
 }
 
 /* Print information about frame FRAME.  The output is format according
@@ -1348,7 +1350,6 @@ backtrace_command (char *arg, int from_tty)
 {
   struct cleanup *old_chain = make_cleanup (null_cleanup, NULL);
   int fulltrace_arg = -1, arglen = 0, argc = 0;
-  volatile struct gdb_exception e;
 
   if (arg)
     {
@@ -1379,7 +1380,8 @@ backtrace_command (char *arg, int from_tty)
 	  if (arglen > 0)
 	    {
 	      arg = xmalloc (arglen + 1);
-	      memset (arg, 0, arglen + 1);
+	      make_cleanup (xfree, arg);
+	      arg[0] = 0;
 	      for (i = 0; i < (argc + 1); i++)
 		{
 		  if (i != fulltrace_arg)
@@ -1394,13 +1396,7 @@ backtrace_command (char *arg, int from_tty)
 	}
     }
 
-  TRY_CATCH (e, RETURN_MASK_ERROR)
-    {
-      backtrace_command_1 (arg, fulltrace_arg >= 0 /* show_locals */, from_tty);
-    }
-
-  if (fulltrace_arg >= 0 && arglen > 0)
-    xfree (arg);
+  backtrace_command_1 (arg, fulltrace_arg >= 0 /* show_locals */, from_tty);
 
   do_cleanups (old_chain);
 }
@@ -1408,12 +1404,7 @@ backtrace_command (char *arg, int from_tty)
 static void
 backtrace_full_command (char *arg, int from_tty)
 {
-  volatile struct gdb_exception e;
-
-  TRY_CATCH (e, RETURN_MASK_ERROR)
-    {
-      backtrace_command_1 (arg, 1 /* show_locals */, from_tty);
-    }
+  backtrace_command_1 (arg, 1 /* show_locals */, from_tty);
 }
 
 


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