aboutsummaryrefslogtreecommitdiff
path: root/gdb/maint.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2016-10-28 01:09:06 +0100
committerPedro Alves <palves@redhat.com>2016-10-28 12:24:38 +0100
commit44d83468ec8e5fccf904d66b752ac36e07d66c56 (patch)
tree15fbc499d8c6bca68d2ad8deff403d8f96dd01cc /gdb/maint.c
parentd87fdac3591d57c1a667b9d2dfeb05e3198b0b53 (diff)
downloadgdb-44d83468ec8e5fccf904d66b752ac36e07d66c56.zip
gdb-44d83468ec8e5fccf904d66b752ac36e07d66c56.tar.gz
gdb-44d83468ec8e5fccf904d66b752ac36e07d66c56.tar.bz2
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.
Diffstat (limited to 'gdb/maint.c')
-rw-r--r--gdb/maint.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gdb/maint.c b/gdb/maint.c
index e0ef4fd..25a495c 100644
--- a/gdb/maint.c
+++ b/gdb/maint.c
@@ -887,6 +887,8 @@ scoped_command_stats::scoped_command_stats (bool msg_type)
m_space_enabled = 1;
#endif
}
+ else
+ m_space_enabled = 0;
if (msg_type == 0 || per_command_time)
{
@@ -894,6 +896,8 @@ scoped_command_stats::scoped_command_stats (bool msg_type)
gettimeofday (&m_start_wall_time, NULL);
m_time_enabled = 1;
}
+ else
+ m_time_enabled = 0;
if (msg_type == 0 || per_command_symtab)
{
@@ -905,6 +909,8 @@ scoped_command_stats::scoped_command_stats (bool msg_type)
m_start_nr_blocks = nr_blocks;
m_symtab_enabled = 1;
}
+ else
+ m_symtab_enabled = 0;
/* Initalize timer to keep track of how long we waited for the user. */
reset_prompt_for_continue_wait_time ();