This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[testsuite patch] Re: Regression for GDB global --statistics
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Doug Evans <dje at google dot com>
- Cc: Eli Zaretskii <eliz at gnu dot org>, gdb-patches <gdb-patches at sourceware dot org>
- Date: Sat, 12 Jul 2014 19:42:17 +0200
- Subject: [testsuite patch] Re: Regression for GDB global --statistics
- Authentication-results: sourceware.org; auth=none
- References: <yjt2ip4s5mbu dot fsf at ruffy2 dot mtv dot corp dot google dot com> <20140630171333 dot GA2225 at host2 dot jankratochvil dot net> <21437 dot 45024 dot 997531 dot 453750 at ruffy dot mtv dot corp dot google dot com> <20140711212537 dot GA19551 at host2 dot jankratochvil dot net> <CADPb22RV8Ls0+-WD_HVegHWxTCUFuZSerws=vpwKYGYjWV4Erg at mail dot gmail dot com>
On Fri, 11 Jul 2014 23:33:43 +0200, Doug Evans wrote:
> On Fri, Jul 11, 2014 at 2:25 PM, Jan Kratochvil
> <jan.kratochvil@redhat.com> wrote:
> > On Wed, 09 Jul 2014 23:10:56 +0200, Doug Evans wrote:
> >> --- a/gdb/testsuite/gdb.base/maint.exp
> >> +++ b/gdb/testsuite/gdb.base/maint.exp
> >> @@ -130,10 +130,11 @@ gdb_expect {
> >> # tests here!!
> >> gdb_test_no_output "maint check-symtabs"
> >>
> >> +# Test per-command stats.
> >> gdb_test_no_output "maint set per-command on"
> >> -
> >> -gdb_test "maint set per-command off" \
> >> +gdb_test "pwd" \
> >> "Command execution time: \[0-9.\]+ \\(cpu\\), \[0-9.\]+ \\(wall\\)\[\r\n\]+Space used: $decimal \\(\\+$decimal for this command\\)\[\r\n\]+#symtabs: $decimal \\(\\+$decimal\\), #primary symtabs: $decimal \\(\\+$decimal\\), #blocks: $decimal \\(\\+$decimal\\)"
> >> +gdb_test_no_output "maint set per-command off"
> >
> > Is it needed to change this behavior? It may break some user scripts working
> > fine with previous GDB stable releases.
>
> Change in behaviour of something related to a maintenance command?
> Or were you referring to something else?
I am referring to the required change above - which will be required even for
other expect-like scripts using "maint set per-command off".
But in the end I am OK with it, it makes sense to no longer print the stats
after "maint set per-command off".
> One problem I wish to avoid is not doing anything expensive unnecessarily.
> And here that translates to not computing the values of statistics
> from before a command executes (so that one can then print the delta
> after it completes) if said statistics will not be printed. That then
> translates to any turning on of a statistics-reporting command (mt set
> per-command foo) will not take effect until the next command. How
> will that be a problem?
I was considering a problem that "maint set per-command off" output has changed.
No matter what it was before and no matter what it is now.
> > Besides that the startup statistics regression is not tested here but I can
> > post then a testcase for it.
>
> As you wish. Thanks.
Done below.
Thanks,
Jan
gdb/testsuite/
2014-07-12 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.base/statistics.exp: New file.
diff --git a/gdb/testsuite/gdb.base/statistics.exp b/gdb/testsuite/gdb.base/statistics.exp
new file mode 100644
index 0000000..22d6f04
--- /dev/null
+++ b/gdb/testsuite/gdb.base/statistics.exp
@@ -0,0 +1,29 @@
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile
+
+gdb_exit
+
+# Inlined default_gdb_start.
+set use_gdb_stub [target_info exists use_gdb_stub]
+set res [remote_spawn host "$GDB $INTERNAL_GDBFLAGS $GDBFLAGS [host_info gdb_opts] -statistics"]
+if { $res < 0 || $res == "" } {
+ perror "Spawning $GDB failed."
+ return
+}
+set gdb_spawn_id -1
+gdb_test "" "Startup time: \[0-9.\]+ \\(cpu\\), \[0-9.\]+ \\(wall\\)\r\nSpace used: \[0-9.\]+ \\(\\+\[0-9.\]+ during startup\\)" "startup time and space"
+gdb_exit