Ensure internal_vproblem always prints the message
authorGary Benson <gbenson@redhat.com>
Tue, 5 Aug 2014 09:20:05 +0000 (10:20 +0100)
committerGary Benson <gbenson@redhat.com>
Tue, 19 Aug 2014 08:44:16 +0000 (09:44 +0100)
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.

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

* utils.c (internal_vproblem): Always print the message.

gdb/ChangeLog
gdb/utils.c

index d8d427f3af8475f0f354716962f968f68b302d91..59a3db7e7d1a72fcee5879cf891eea93db5825a7 100644 (file)
@@ -1,3 +1,7 @@
+2014-08-19  Gary Benson  <gbenson@redhat.com>
+
+       * utils.c (internal_vproblem): Always print the message.
+
 2014-08-18  Doug Evans  <dje@google.com>
 
        * ada-typeprint.c (print_range): Initialize lo,hi for gcc -Wall.
index 34b842e9b2cd540eb94d117ad04c0c1c40091a62..61f0abc5ff6fe05bc8ad534a3f3e5708d71194df 100644 (file)
@@ -733,18 +733,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);
     }