ui_out_field_int (uiout, "depth", i);
}
+static enum print_values
+parse_print_values (char *name)
+{
+ if (strcmp (name, "0") == 0
+ || strcmp (name, mi_no_values) == 0)
+ return PRINT_NO_VALUES;
+ else if (strcmp (name, "1") == 0
+ || strcmp (name, mi_all_values) == 0)
+ return PRINT_ALL_VALUES;
+ else if (strcmp (name, "2") == 0
+ || strcmp (name, mi_simple_values) == 0)
+ return PRINT_SIMPLE_VALUES;
+ else
+ error (_("Unknown value for PRINT_VALUES: must be: \
+0 or \"%s\", 1 or \"%s\", 2 or \"%s\""),
+ mi_no_values, mi_all_values, mi_simple_values);
+}
+
/* Print a list of the locals for the current frame. With argument of
0, print only the names, with argument of 1 print also the
values. */
frame = get_selected_frame (NULL);
- if (strcmp (argv[0], "0") == 0
- || strcmp (argv[0], mi_no_values) == 0)
- print_values = PRINT_NO_VALUES;
- else if (strcmp (argv[0], "1") == 0
- || strcmp (argv[0], mi_all_values) == 0)
- print_values = PRINT_ALL_VALUES;
- else if (strcmp (argv[0], "2") == 0
- || strcmp (argv[0], mi_simple_values) == 0)
- print_values = PRINT_SIMPLE_VALUES;
- else
- error (_("Unknown value for PRINT_VALUES: must be: \
-0 or \"%s\", 1 or \"%s\", 2 or \"%s\""),
- mi_no_values, mi_all_values, mi_simple_values);
- list_args_or_locals (1, print_values, frame);
+ list_args_or_locals (1, parse_print_values (argv[0]), frame);
}
/* Print a list of the arguments for the current frame. With argument
int i;
struct frame_info *fi;
struct cleanup *cleanup_stack_args;
+ enum print_values print_values;
if (argc < 1 || argc > 3 || argc == 2)
error (_("mi_cmd_stack_list_args: Usage: PRINT_VALUES [FRAME_LOW FRAME_HIGH]"));
frame_high = -1;
}
+ print_values = parse_print_values (argv[0]);
+
/* Let's position fi on the frame at which to start the
display. Could be the innermost frame if the whole stack needs
displaying, or if frame_low is 0. */
QUIT;
cleanup_frame = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
ui_out_field_int (uiout, "level", i);
- list_args_or_locals (0, atoi (argv[0]), fi);
+ list_args_or_locals (0, print_values, fi);
do_cleanups (cleanup_frame);
}
"232\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\}\\\]" \
"stack args listing 1 1 1"
- mi_gdb_test "233-stack-list-arguments 1 1 3" \
+ mi_gdb_test "233-stack-list-arguments --all-values 1 3" \
"233\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"2\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\},frame=\{level=\"3\",args=\\\[\{name=\"intarg\",value=\"2\"\},\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\},\{name=\"fltarg\",value=\"3.5\"\}\\\]\}\\\]" \
"stack args listing 1 1 3"
"232\\^done,locals=\\\[\{name=\"A\",value=\"1\"\},\{name=\"B\",value=\"2\"\},\{name=\"C\",value=\"3\"\},\{name=\"D\",value=\"\\{0, 1, 2\\}\"\}\\\]" \
"stack locals listing of names and values"
- mi_gdb_test "232-stack-list-locals 2" \
+ mi_gdb_test "232-stack-list-locals --simple-values" \
"232\\^done,locals=\\\[\{name=\"A\",type=\"int\",value=\"1\"\},\{name=\"B\",type=\"int\",value=\"2\"\},\{name=\"C\",type=\"int\",value=\"3\"\},\{name=\"D\",type=\"int \\\[3\\\]\"\}\\\]" \
"stack locals listing, simple types: names and values, complex type: names and types"