6211c335ec
This is the patch to add new option '--skip-unavailable' to MI commands '-stack-list-{locals, arguments, variables}'. This patch extends list_args_or_locals to add a new parameter 'skip_unavailable', and don't list locals or arguments if values are unavailable and 'skip_unavailable' is true. This is inspecting a trace frame (tfind mode), where only a few locals have been collected. -stack-list-locals, no switch vs new switch: -stack-list-locals --simple-values ^done,locals=[{name="array",type="unsigned char [2]"},{name="i",type="int",value="<unavailable>"}] -stack-list-locals --skip-unavailable --simple-values ^done,locals=[{name="array",type="unsigned char [2]"}] -stack-list-arguments, no switch vs new switch: -stack-list-arguments --simple-values ^done,stack-args=[frame={level="0",args=[{name="j",type="int",value="4"},{name="s",type="char *",value="<unavailable>"}]},frame={level="1",args=[]}] -stack-list-arguments --skip-unavailable --simple-values ^done,stack-args=[frame={level="0",args=[{name="j",type="int",value="4"}]},frame={level="1",args=[]}] -stack-list-variables, no switch vs new switch: -stack-list-variables --simple-values ^done,variables=[{name="j",arg="1",type="int",value="4"},{name="s",arg="1",type="char *",value="<unavailable>"},{name="array",type="unsigned char [2]"},{name="i",type="int",value="<unavailable>"}] -stack-list-variables --skip-unavailable --simple-values ^done,variables=[{name="j",arg="1",type="int",value="4"},{name="array",type="unsigned char [2]"}] tests are added to test these new options. gdb: 2013-08-27 Pedro Alves <pedro@codesourcery.com> Yao Qi <yao@codesourcery.com> * mi/mi-cmd-stack.c (list_args_or_locals): Adjust prototype. (parse_no_frames_option): Remove. (mi_cmd_stack_list_locals): Handle --skip-unavailable. (mi_cmd_stack_list_args): Adjust. (mi_cmd_stack_list_variables): Handle --skip-unavailable. (list_arg_or_local): Add new parameter 'skip_unavailable'. Return early if SKIP_UNAVAILABLE is true and ARG->val is unavailable. Caller update. (list_args_or_locals): New parameter 'skip_unavailable'. Handle it. * valprint.c (scalar_type_p): Rename to ... (val_print_scalar_type_p): ... this. Make extern. (val_print, value_check_printable): Adjust. * valprint.h (val_print_scalar_type_p): Declare. * value.c (value_entirely_unavailable): New function. * value.h (value_entirely_unavailable): Declare. * NEWS: Mention the new option "--skip-unavailable" to MI commands '-stack-list-locals', '-stack-list-arguments' and '-stack-list-variables'. gdb/doc: 2013-08-27 Pedro Alves <pedro@codesourcery.com> Yao Qi <yao@codesourcery.com> * gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-locals>: Document new --skip-unavailable option. <-stack-list-variables>: Document new --skip-unavailable option. gdb/testsuite: 2013-08-27 Yao Qi <yao@codesourcery.com> * gdb.trace/entry-values.exp: Test unavailable entry value is not shown when option '--skip-unavailable' is specified. * gdb.trace/mi-trace-unavailable.exp (test_trace_unavailable): Add tests for new option '--skip-unavailable'. |
||
---|---|---|
.. | ||
actions-changed.c | ||
actions-changed.exp | ||
actions.c | ||
actions.exp | ||
ax.exp | ||
backtrace.exp | ||
change-loc-1.c | ||
change-loc-2.c | ||
change-loc.c | ||
change-loc.exp | ||
change-loc.h | ||
circ.c | ||
circ.exp | ||
collection.c | ||
collection.exp | ||
deltrace.exp | ||
disconnected-tracing.c | ||
disconnected-tracing.exp | ||
entry-values.c | ||
entry-values.exp | ||
ftrace.c | ||
ftrace.exp | ||
infotrace.exp | ||
Makefile.in | ||
mi-trace-frame-collected.exp | ||
mi-trace-unavailable.exp | ||
mi-traceframe-changed.exp | ||
mi-tracepoint-changed.exp | ||
mi-tsv-changed.exp | ||
packetlen.exp | ||
passc-dyn.exp | ||
passcount.exp | ||
pending.c | ||
pending.exp | ||
pendshr1.c | ||
pendshr2.c | ||
qtro.c | ||
qtro.exp | ||
range-stepping.c | ||
range-stepping.exp | ||
read-memory.c | ||
read-memory.exp | ||
report.exp | ||
save-trace.exp | ||
stap-trace.c | ||
stap-trace.exp | ||
status-stop.c | ||
status-stop.exp | ||
strace.c | ||
strace.exp | ||
tfile.c | ||
tfile.exp | ||
tfind.exp | ||
trace-break.c | ||
trace-break.exp | ||
trace-buffer-size.c | ||
trace-buffer-size.exp | ||
trace-mt.c | ||
trace-mt.exp | ||
trace-unavailable.c | ||
tracecmd.exp | ||
tspeed.c | ||
tspeed.exp | ||
tstatus.exp | ||
tsv.exp | ||
unavailable.cc | ||
unavailable.exp | ||
while-dyn.exp | ||
while-stepping.exp |