* mi/mi-cmd-stack.c (parse_print_values): New.
(mi_cmd_stack_list_locals, mi_cmd_stack_list_args): Use the above.
This commit is contained in:
parent
1a4300e94d
commit
8b777f02e1
|
@ -1,3 +1,8 @@
|
||||||
|
2009-06-30 Vladimir Prus <vladimir@codesourcery.com>
|
||||||
|
|
||||||
|
* mi/mi-cmd-stack.c (parse_print_values): New.
|
||||||
|
(mi_cmd_stack_list_locals, mi_cmd_stack_list_args): Use the above.
|
||||||
|
|
||||||
2009-06-30 Vladimir Prus <vladimir@codesourcery.com>
|
2009-06-30 Vladimir Prus <vladimir@codesourcery.com>
|
||||||
|
|
||||||
* varobj.c (varobj_get_type): Use type_to_string.
|
* varobj.c (varobj_get_type): Use type_to_string.
|
||||||
|
|
|
@ -116,6 +116,24 @@ mi_cmd_stack_info_depth (char *command, char **argv, int argc)
|
||||||
ui_out_field_int (uiout, "depth", i);
|
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
|
/* 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
|
0, print only the names, with argument of 1 print also the
|
||||||
values. */
|
values. */
|
||||||
|
@ -130,20 +148,7 @@ mi_cmd_stack_list_locals (char *command, char **argv, int argc)
|
||||||
|
|
||||||
frame = get_selected_frame (NULL);
|
frame = get_selected_frame (NULL);
|
||||||
|
|
||||||
if (strcmp (argv[0], "0") == 0
|
list_args_or_locals (1, parse_print_values (argv[0]), frame);
|
||||||
|| 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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print a list of the arguments for the current frame. With argument
|
/* Print a list of the arguments for the current frame. With argument
|
||||||
|
@ -157,6 +162,7 @@ mi_cmd_stack_list_args (char *command, char **argv, int argc)
|
||||||
int i;
|
int i;
|
||||||
struct frame_info *fi;
|
struct frame_info *fi;
|
||||||
struct cleanup *cleanup_stack_args;
|
struct cleanup *cleanup_stack_args;
|
||||||
|
enum print_values print_values;
|
||||||
|
|
||||||
if (argc < 1 || argc > 3 || argc == 2)
|
if (argc < 1 || argc > 3 || argc == 2)
|
||||||
error (_("mi_cmd_stack_list_args: Usage: PRINT_VALUES [FRAME_LOW FRAME_HIGH]"));
|
error (_("mi_cmd_stack_list_args: Usage: PRINT_VALUES [FRAME_LOW FRAME_HIGH]"));
|
||||||
|
@ -174,6 +180,8 @@ mi_cmd_stack_list_args (char *command, char **argv, int argc)
|
||||||
frame_high = -1;
|
frame_high = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
print_values = parse_print_values (argv[0]);
|
||||||
|
|
||||||
/* Let's position fi on the frame at which to start the
|
/* Let's position fi on the frame at which to start the
|
||||||
display. Could be the innermost frame if the whole stack needs
|
display. Could be the innermost frame if the whole stack needs
|
||||||
displaying, or if frame_low is 0. */
|
displaying, or if frame_low is 0. */
|
||||||
|
@ -196,7 +204,7 @@ mi_cmd_stack_list_args (char *command, char **argv, int argc)
|
||||||
QUIT;
|
QUIT;
|
||||||
cleanup_frame = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
|
cleanup_frame = make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
|
||||||
ui_out_field_int (uiout, "level", i);
|
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);
|
do_cleanups (cleanup_frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2009-06-30 Vladimir Prus <vladimir@codesourcery.com>
|
||||||
|
|
||||||
|
* gdb.mi/mi-stack.exp: Testing symbolic options
|
||||||
|
to -stack-list-locals and -stack-list-arguments.
|
||||||
|
|
||||||
2009-06-29 Jan Kratochvil <jan.kratochvil@redhat.com>
|
2009-06-29 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* gdb.threads/current-lwp-dead.exp, gdb.threads/current-lwp-dead.c: New.
|
* gdb.threads/current-lwp-dead.exp, gdb.threads/current-lwp-dead.c: New.
|
||||||
|
|
|
@ -115,7 +115,7 @@ proc test_stack_args_listing {} {
|
||||||
"232\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\}\\\]" \
|
"232\\^done,stack-args=\\\[frame=\{level=\"1\",args=\\\[\{name=\"strarg\",value=\"$hex \\\\\"A string argument.\\\\\"\"\}\\\]\}\\\]" \
|
||||||
"stack args listing 1 1 1"
|
"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\"\}\\\]\}\\\]" \
|
"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"
|
"stack args listing 1 1 3"
|
||||||
|
|
||||||
|
@ -180,7 +180,7 @@ mi_execute_to "exec-next 4" "end-stepping-range" "callee4" "" ".*${srcfile}" $li
|
||||||
"232\\^done,locals=\\\[\{name=\"A\",value=\"1\"\},\{name=\"B\",value=\"2\"\},\{name=\"C\",value=\"3\"\},\{name=\"D\",value=\"\\{0, 1, 2\\}\"\}\\\]" \
|
"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"
|
"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\\\]\"\}\\\]" \
|
"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"
|
"stack locals listing, simple types: names and values, complex type: names and types"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue