2 for each recurse. */
val = read_var_value (sym, fi);
- annotate_arg_value (val == NULL ? NULL : VALUE_TYPE (val));
+ annotate_arg_value (val == NULL ? NULL : value_type (val));
if (val)
{
- val_print (VALUE_TYPE (val), VALUE_CONTENTS (val), 0,
+ val_print (value_type (val), VALUE_CONTENTS (val), 0,
VALUE_ADDRESS (val),
stb->stream, 0, 0, 2, Val_no_prettyprint);
ui_out_field_stream (uiout, "value", stb);
printf_filtered ("(More stack frames follow...)\n");
}
+struct backtrace_command_args
+ {
+ char *count_exp;
+ int show_locals;
+ int from_tty;
+ };
+
+/* Stub to call backtrace_command_1 by way of an error catcher. */
+static int
+backtrace_command_stub (void *data)
+{
+ struct backtrace_command_args *args = (struct backtrace_command_args *)data;
+ backtrace_command_1 (args->count_exp, args->show_locals, args->from_tty);
+ return 0;
+}
+
static void
backtrace_command (char *arg, int from_tty)
{
char **argv = (char **) NULL;
int argIndicatingFullTrace = (-1), totArgLen = 0, argc = 0;
char *argPtr = arg;
+ struct backtrace_command_args btargs;
if (arg != (char *) NULL)
{
}
}
- backtrace_command_1 (argPtr, (argIndicatingFullTrace >= 0), from_tty);
+ btargs.count_exp = argPtr;
+ btargs.show_locals = (argIndicatingFullTrace >= 0);
+ btargs.from_tty = from_tty;
+ catch_errors (backtrace_command_stub, (char *)&btargs, "", RETURN_MASK_ERROR);
if (argIndicatingFullTrace >= 0 && totArgLen > 0)
xfree (argPtr);
static void
backtrace_full_command (char *arg, int from_tty)
{
- backtrace_command_1 (arg, 1, from_tty);
+ struct backtrace_command_args btargs;
+ btargs.count_exp = arg;
+ btargs.show_locals = 1;
+ btargs.from_tty = from_tty;
+ catch_errors (backtrace_command_stub, (char *)&btargs, "", RETURN_MASK_ERROR);
}
\f
/* Store RETURN_VAUE in the just-returned register set. */
if (return_value != NULL)
{
- struct type *return_type = VALUE_TYPE (return_value);
+ struct type *return_type = value_type (return_value);
gdb_assert (gdbarch_return_value (current_gdbarch, return_type,
NULL, NULL, NULL)
== RETURN_VALUE_REGISTER_CONVENTION);