This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[testsuite patch] Re: Regression for GDB global --statistics


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]