[PATCH] gdb: replace some calls to internal_error with gdb_assert

Simon Marchi simon.marchi@polymtl.ca
Thu Apr 2 17:48:17 GMT 2020


There are a few spots using the pattern:

  if (condition)
    internal_error (__FILE__, __LINE__,
		    _("failed internal consistency check"));

The message brings no value, since it's pretty the description of a
failed assertion.  Replace a few of these that are obvious with
gdb_assert.

gdb/ChangeLog:

	* exec.c (build_section_table): Replace internal_error with
	gdb_assert.
	(section_table_xfer_memory_partial): Likewise.
	* mdebugread.c (parse_partial_symbols): Likewise.
	* psymtab.c (lookup_partial_symbol): Likewise.
	* utils.c (wrap_here): Likewise.
---
 gdb/exec.c       | 10 ++++------
 gdb/mdebugread.c |  5 ++---
 gdb/psymtab.c    | 11 +++++------
 gdb/utils.c      |  4 +---
 4 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/gdb/exec.c b/gdb/exec.c
index 68bca1be1773..c885709c94e4 100644
--- a/gdb/exec.c
+++ b/gdb/exec.c
@@ -619,9 +619,9 @@ build_section_table (struct bfd *some_bfd, struct target_section **start,
   *start = XNEWVEC (struct target_section, count);
   *end = *start;
   bfd_map_over_sections (some_bfd, add_to_section_table, (char *) end);
-  if (*end > *start + count)
-    internal_error (__FILE__, __LINE__,
-		    _("failed internal consistency check"));
+
+  gdb_assert (*end <= *start + count);
+
   /* We could realloc the table, but it probably loses for most files.  */
   return 0;
 }
@@ -916,9 +916,7 @@ section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
   ULONGEST memaddr = offset;
   ULONGEST memend = memaddr + len;
 
-  if (len == 0)
-    internal_error (__FILE__, __LINE__,
-		    _("failed internal consistency check"));
+  gdb_assert (len != 0);
 
   for (p = sections; p < sections_end; p++)
     {
diff --git a/gdb/mdebugread.c b/gdb/mdebugread.c
index bac6fd6c4656..5dfd80de1923 100644
--- a/gdb/mdebugread.c
+++ b/gdb/mdebugread.c
@@ -3576,9 +3576,8 @@ parse_partial_symbols (minimal_symbol_reader &reader,
 	      CORE_ADDR svalue;
 	      short section;
 
-	      if (ext_ptr->ifd != f_idx)
-		internal_error (__FILE__, __LINE__,
-				_("failed internal consistency check"));
+	      gdb_assert (ext_ptr->ifd == f_idx);
+
 	      psh = &ext_ptr->asym;
 
 	      /* Do not add undefined symbols to the partial symbol table.  */
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 26c55e9bd334..129eecb06711 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -683,9 +683,9 @@ lookup_partial_symbol (struct objfile *objfile,
       while (top > bottom)
 	{
 	  center = bottom + (top - bottom) / 2;
-	  if (!(center < top))
-	    internal_error (__FILE__, __LINE__,
-			    _("failed internal consistency check"));
+
+	  gdb_assert (center < top);
+
 	  if (strcmp_iw_ordered ((*center)->ginfo.search_name (),
 				 lookup_name.c_str ()) >= 0)
 	    {
@@ -696,9 +696,8 @@ lookup_partial_symbol (struct objfile *objfile,
 	      bottom = center + 1;
 	    }
 	}
-      if (!(top == bottom))
-	internal_error (__FILE__, __LINE__,
-			_("failed internal consistency check"));
+
+      gdb_assert (top == bottom);
 
       /* For `case_sensitivity == case_sensitive_off' strcmp_iw_ordered will
 	 search more exactly than what matches SYMBOL_MATCHES_SEARCH_NAME.  */
diff --git a/gdb/utils.c b/gdb/utils.c
index 0b470120a22f..bda6bbf5b0e7 100644
--- a/gdb/utils.c
+++ b/gdb/utils.c
@@ -1578,9 +1578,7 @@ void
 wrap_here (const char *indent)
 {
   /* This should have been allocated, but be paranoid anyway.  */
-  if (!filter_initialized)
-    internal_error (__FILE__, __LINE__,
-		    _("failed internal consistency check"));
+  gdb_assert (filter_initialized);
 
   flush_wrap_buffer (gdb_stdout);
   if (chars_per_line == UINT_MAX)	/* No line overflow checking.  */
-- 
2.26.0



More information about the Gdb-patches mailing list