gdb/
[deliverable/binutils-gdb.git] / gdb / stack.c
index 873451f0a81d9debbf8c7347496cfb0d5622808d..6e871c09a7f5c1c1164ca46cda4dc1fc4347bf51 100644 (file)
@@ -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);
 }
 \f
 
This page took 0.024341 seconds and 4 git commands to generate.