aboutsummaryrefslogtreecommitdiff
path: root/gdb/stack.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/stack.c')
-rw-r--r--gdb/stack.c31
1 files changed, 11 insertions, 20 deletions
diff --git a/gdb/stack.c b/gdb/stack.c
index 873451f..6e871c0 100644
--- 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);
}