Consolidate code for displaying per-command time and space statistics to avoid
duplication. Piggyback on cleanups so that statistics get printed even when
commands terminate as a result of an error.
Changelog
* gdb/defs.h (make_command_stats_cleanup): Declare.
(set_display_time): Declare.
(set_display_space): Declare.
* gdb/event-top.c (command_handler): Use make_command_stats_cleanup.
* gdb/main.c (display_time, display_space): Move definitions to utils.c.
(captured_main): Use make_command_stats_cleanup to get start-up
statistics.
Use set_display_time and set_display_space for processing OPT_STATISTICS
case.
* gdb/maint.c (maintenance_time_display): Use set_display_time.
(maintenance_space_display): Use set_display_space.
* gdb/top.c (execute_command): Remove obsolete 'maint time' code.
(command_loop): Use make_command_stats_cleanup.
* gdb/utils.c (struct cmd_stats): Structure for storing initial time
and space usage.
(display_time, display_space): Move definitions here from utils.c.
(set_display_time): New function.
(set_display_space): New function.
(make_command_stats_cleanup): New function.
(report_command_stats): New auxiliary function for
make_command_stats_cleanup.
* gdb/testsuite/gdb.gdb/selftest.exp: Adjust expected message for
capturing start-up runtime.
* gdb.base/annota3.exp: Likewise.
* gdb.base/sigstep.exp (advancei): Fail if we hit the breakpoint
again (instead of timing out).
* gdb.gdb/selftest.exp (do_steps_and_nexts): Add an XFAIL for
GCC bug 26475.
* gdb.java/jmisc.exp: Adjust to work with method signatures including
return types. Add kfails for GDB bugs 2214 and 2215. Move exit
test from jmisc1.exp.
* gdb.java/jmisc1.exp: Delete.
* gdb.java/jprint.exp: Adjust to work with method signatures including
return types.
* gdb.objc/basicclass.exp: Update for gobjc 4.1 debug info.
* gdb.threads/linux-dp.exp: Don't be confused by program output.
* lib/java.exp (compile_java_from_source): Pass the correct type
to target_compile.
* lib/gdb.exp (gdb_file_cmd): Revert the return value to
previous simple convention. Use a global variable to store
information about what was found.
(gdb_run_cmd): Adapt to reverted return value.
* gdb.base/remote.exp: Adapt to reverted return value.
* gdb.gdb/complaints.exp: Likewise.
* gdb.gdb/observer.exp: Likewise.
* gdb.gdb/selftest.exp: Likewise.
* gdb.gdb/xfullpath.exp: Likewise.
With code from Manoj Iyer <manjo@austin.ibm.com>:
* lib/gdb.exp (gdb_file_cmd): Return more information in the
return value. Add an arm for "no debugging symbols found".
Change a stray "error" to "perror".
(gdb_run_cmd): Adapt to new return value.
* gdb.base/remote.exp: Adapt to new return value.
* gdb.gdb/complaints.exp: Likewise.
* gdb.gdb/observer.exp: Likewise.
* gdb.gdb/selftest.exp: Likewise.
* gdb.gdb/xfullpath.exp: Likewise.
* gdb.gdb/observer.exp: Update copyright.
(setup_test): Use gdb_test_multiple.
(attach_first_observer, attach_second_observer)
(attach_third_observer, detach_first_observer)
(detach_second_observer, detach_third_observer)
(reset_counters, check_counters): Make $message a prefix.
(test_normal_stop_notifications): Add "args" parameter - a list of
init functions to be called. Make $message a prefix,
(test_observer_normal_stop): Change the message prefixes so that
they are unique, pass the attach / detach procedures to
test_normal_stop_notifications.
* gdb.gdb/complaints.exp (test_initial_complaints): Rename
test_isolated_complaints.
(test_empty_complaint): New function.
(test_empty_complaints): New function. Check no output when no
complaints.