Ensure internal_vproblem always prints the message

Message ID 1407232590-23899-1-git-send-email-gbenson@redhat.com
State Committed
Headers

Commit Message

Gary Benson Aug. 5, 2014, 9:56 a.m. UTC
  Hi all,

While working on internal_vproblem I noticed that the error/warning
message is suppressed if problem->should_quit is internal_problem_yes
or internal_problem_no.  This behaviour seems wrong.  This commit
modifies internal_vproblem to emit the message regardless of the
user's settings.

Built and regtested on RHEL6.5 x86_64.

Is this ok to commit?

Thanks,
Gary

--
gdb/
2014-08-05  Gary Benson  <gbenson@redhat.com>

	* utils.c (internal_vproblem): Always print the message.
---
 gdb/ChangeLog |    4 ++++
 gdb/utils.c   |   11 +++++------
 2 files changed, 9 insertions(+), 6 deletions(-)
  

Comments

Joel Brobecker Aug. 19, 2014, 7:35 a.m. UTC | #1
> 2014-08-05  Gary Benson  <gbenson@redhat.com>
> 
> 	* utils.c (internal_vproblem): Always print the message.

That seems to make sense to me to. Go ahead and push.

Thanks,
  
Gary Benson Aug. 19, 2014, 8:46 a.m. UTC | #2
Joel Brobecker wrote:
> > 2014-08-05  Gary Benson  <gbenson@redhat.com>
> > 
> > 	* utils.c (internal_vproblem): Always print the message.
> 
> That seems to make sense to me to. Go ahead and push.

Pushed.

Thanks,
Gary
  

Patch

diff --git a/gdb/utils.c b/gdb/utils.c
index a4b5937..15b4abe 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -736,18 +736,17 @@  internal_vproblem (struct internal_problem *problem,
     make_cleanup (xfree, reason);
   }
 
+  /* Emit the message unless query will emit it below.  */
+  if (problem->should_quit != internal_problem_ask || !confirm)
+    fprintf_unfiltered (gdb_stderr, "%s\n", reason);
+
   if (problem->should_quit == internal_problem_ask)
     {
       /* Default (yes/batch case) is to quit GDB.  When in batch mode
 	 this lessens the likelihood of GDB going into an infinite
 	 loop.  */
       if (!confirm)
-        {
-          /* Emit the message and quit.  */
-          fputs_unfiltered (reason, gdb_stderr);
-          fputs_unfiltered ("\n", gdb_stderr);
-          quit_p = 1;
-        }
+	quit_p = 1;
       else
         quit_p = query (_("%s\nQuit this debugging session? "), reason);
     }