[PATCH 1/5] Move internal_{,v}warning to common/errors.[ch]

Gary Benson gbenson@redhat.com
Mon Aug 18 08:47:00 GMT 2014


This commit moves internal_warning and internal_vwarning into
common/errors.[ch].

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

	* common/errors.h (internal_warning): New declaration.
	(internal_vwarning): Likewise.
	* common/errors.c (internal_warning): New function.
	* utils.h (internal_warning): Don't declare.
	(internal_vwarning): Likewise.
	* utils.c (internal_warning): Removed.

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

	* utils.c (internal_vwarning): New function.
---
 gdb/ChangeLog           |    9 +++++++++
 gdb/common/errors.c     |   12 ++++++++++++
 gdb/common/errors.h     |   15 +++++++++++++++
 gdb/gdbserver/ChangeLog |    4 ++++
 gdb/gdbserver/utils.c   |   11 +++++++++++
 gdb/utils.c             |   10 ----------
 gdb/utils.h             |    7 -------
 7 files changed, 51 insertions(+), 17 deletions(-)

diff --git a/gdb/common/errors.c b/gdb/common/errors.c
index 6da2666..089c64b 100644
--- a/gdb/common/errors.c
+++ b/gdb/common/errors.c
@@ -55,3 +55,15 @@ internal_error (const char *file, int line, const char *fmt, ...)
   internal_verror (file, line, fmt, ap);
   va_end (ap);
 }
+
+/* See common/errors.h.  */
+
+void
+internal_warning (const char *file, int line, const char *fmt, ...)
+{
+  va_list ap;
+
+  va_start (ap, fmt);
+  internal_vwarning (file, line, fmt, ap);
+  va_end (ap);
+}
diff --git a/gdb/common/errors.h b/gdb/common/errors.h
index 4e6c2b3..88d77e5 100644
--- a/gdb/common/errors.h
+++ b/gdb/common/errors.h
@@ -58,6 +58,21 @@ extern void internal_error (const char *file, int line,
 extern void internal_verror (const char *file, int line,
 			     const char *fmt, va_list args)
      ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF (3, 0);
+
+/* An internal problem was detected, but the requested operation can
+   still proceed.  Internal warnings indicate programming errors as
+   opposed to more general issues beyond the application's control.
+   A warning message is constructed using a printf- or vprintf-style
+   argument list.  The function "internal_vwarning" must be provided
+   by the client.  */
+
+extern void internal_warning (const char *file, int line,
+			      const char *fmt, ...)
+     ATTRIBUTE_PRINTF (3, 4);
+
+extern void internal_vwarning (const char *file, int line,
+			       const char *fmt, va_list args)
+     ATTRIBUTE_PRINTF (3, 0);
 
 
 /* Like "error", but the error message is constructed by combining
diff --git a/gdb/gdbserver/utils.c b/gdb/gdbserver/utils.c
index 3aac3cd..3ec4add 100644
--- a/gdb/gdbserver/utils.c
+++ b/gdb/gdbserver/utils.c
@@ -129,6 +129,17 @@ internal_verror (const char *file, int line, const char *fmt, va_list args)
   exit (1);
 }
 
+/* Report a problem internal to GDBserver.  */
+
+void
+internal_vwarning (const char *file, int line, const char *fmt, va_list args)
+{
+  fprintf (stderr,  "\
+%s:%d: A problem internal to " TOOLNAME " has been detected.\n", file, line);
+  vfprintf (stderr, fmt, args);
+  fprintf (stderr, "\n");
+}
+
 /* Convert a CORE_ADDR into a HEX string, like %lx.
    The result is stored in a circular static buffer, NUMCELLS deep.  */
 
diff --git a/gdb/utils.c b/gdb/utils.c
index 2b64023..759ec84 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -797,16 +797,6 @@ internal_vwarning (const char *file, int line, const char *fmt, va_list ap)
   internal_vproblem (&internal_warning_problem, file, line, fmt, ap);
 }
 
-void
-internal_warning (const char *file, int line, const char *string, ...)
-{
-  va_list ap;
-
-  va_start (ap, string);
-  internal_vwarning (file, line, string, ap);
-  va_end (ap);
-}
-
 static struct internal_problem demangler_warning_problem = {
   "demangler-warning", 1, internal_problem_ask, 0, internal_problem_no
 };
diff --git a/gdb/utils.h b/gdb/utils.h
index 57a1c0f..2ec3fda 100644
--- a/gdb/utils.h
+++ b/gdb/utils.h
@@ -283,13 +283,6 @@ extern char *warning_pre_print;
 
 extern void error_stream (struct ui_file *) ATTRIBUTE_NORETURN;
 
-extern void internal_vwarning (const char *file, int line,
-			       const char *, va_list ap)
-     ATTRIBUTE_PRINTF (3, 0);
-
-extern void internal_warning (const char *file, int line,
-			      const char *, ...) ATTRIBUTE_PRINTF (3, 4);
-
 extern void demangler_vwarning (const char *file, int line,
 			       const char *, va_list ap)
      ATTRIBUTE_PRINTF (3, 0);
-- 
1.7.1



More information about the Gdb-patches mailing list