Fix gdb.base/maint.exp regressions
authorPedro Alves <palves@redhat.com>
Fri, 28 Oct 2016 00:09:06 +0000 (01:09 +0100)
committerPedro Alves <palves@redhat.com>
Fri, 28 Oct 2016 11:24:38 +0000 (12:24 +0100)
commit44d83468ec8e5fccf904d66b752ac36e07d66c56
tree15fbc499d8c6bca68d2ad8deff403d8f96dd01cc
parentd87fdac3591d57c1a667b9d2dfeb05e3198b0b53
Fix gdb.base/maint.exp regressions

This commit fixes these regressions:

 FAIL: gdb.base/maint.exp: mt set per on for expand-symtabs
 FAIL: gdb.base/maint.exp: maint set per-command on

caused by commit 1e3b796d58ac ("Change command stats reporting to use
class").

gdb.log shows that the command stats are now printing garbage:

 (gdb) mt set per on
 Command execution time: -6.-419590 (cpu), 1467139648.-7706296840 (wall)
 Space used: 9809920 (-33276528 for this command)
 (gdb) FAIL: gdb.base/maint.exp: mt set per on for expand-symtabs

while there should have been no output at all.

The stats printing is done from within the scoped_command_stats's
destructor, depending on whether some flags in the object are set.
The problem is simply that scoped_command_stats's ctor misses clearing
those flags on some paths.

Since scoped_command_stats objects are allocated on the stack, whether
you'll see the regression simply depends on whatever happens to
already be on the stack space the object occupies.

gdb/ChangeLog:
2016-10-28  Pedro Alves  <palves@redhat.com>

* maint.c (scoped_command_stats::scoped_command_stats): Clear
m_space_enabled, m_time_enabled and m_symtab_enabled.
gdb/ChangeLog
gdb/maint.c