This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] Zap remaining calls to error_begin()


Hello,

This removes the remaining calls to the function error_begin().  Instead 
it uses error() or error_stream().  The calls in language.c are removed 
in a separate patch.

It also replaces cplusplus_hint() and call code with cplusplus_error(). 
  Any one got a better name?

enjoy,
Andrew
2002-01-31  Andrew Cagney  <ac131313@redhat.com>

	* utils.c (error_begin): Make static.
	* defs.h (error_begin): Delete declaration.

	* linespec.c (cplusplus_error): Replace cplusplus_hint.
	(decode_line_1): Use cplusplus_error instead of error_begin,
	cplusplus_hint and return_to_top_level.
	* coffread.c (coff_symfile_read): Use error instead of error_begin
	and return_to_top_level.
	* infrun.c (default_skip_permanent_breakpoint): Ditto.

Index: coffread.c
===================================================================
RCS file: /cvs/src/src/gdb/coffread.c,v
retrieving revision 1.22
diff -p -r1.22 coffread.c
*** coffread.c	2002/01/05 04:30:15	1.22
--- coffread.c	2002/01/31 18:57:22
*************** coff_symfile_read (struct objfile *objfi
*** 668,680 ****
      {
        if (!info->stabstrsect)
  	{
! 	  error_begin ();
! 	  fprintf_filtered
! 	    (gdb_stderr,
! 	     ("The debugging information in `%s' is corrupted.\n"
! 	   "The file has a `.stabs' section, but no `.stabstr' section.\n"),
! 	     name);
! 	  return_to_top_level (RETURN_ERROR);
  	}
  
        /* FIXME: dubious.  Why can't we use something normal like
--- 668,677 ----
      {
        if (!info->stabstrsect)
  	{
! 	  error (("The debugging information in `%s' is corrupted.\n"
! 		  "The file has a `.stabs' section, but no `.stabstr' "
! 		  "section."),
! 		 name);
  	}
  
        /* FIXME: dubious.  Why can't we use something normal like
Index: defs.h
===================================================================
RCS file: /cvs/src/src/gdb/defs.h,v
retrieving revision 1.74
diff -p -r1.74 defs.h
*** defs.h	2002/01/31 04:10:51	1.74
--- defs.h	2002/01/31 18:58:13
*************** extern NORETURN void verror (const char 
*** 1068,1076 ****
  
  extern NORETURN void error (const char *fmt, ...) ATTR_NORETURN;
  
- /* DEPRECATED: Use error(), verror() or error_stream(). */
- extern NORETURN void error_begin (void);
- 
  extern NORETURN void error_stream (struct ui_file *) ATTR_NORETURN;
  
  /* Returns a freshly allocate buffer containing the last error
--- 1068,1073 ----
Index: infrun.c
===================================================================
RCS file: /cvs/src/src/gdb/infrun.c,v
retrieving revision 1.50
diff -p -r1.50 infrun.c
*** infrun.c	2002/01/17 22:15:17	1.50
--- infrun.c	2002/01/31 18:59:24
*************** static int may_follow_exec = MAY_FOLLOW_
*** 232,243 ****
  static void
  default_skip_permanent_breakpoint (void)
  {
!   error_begin ();
!   fprintf_filtered (gdb_stderr, "\
  The program is stopped at a permanent breakpoint, but GDB does not know\n\
  how to step past a permanent breakpoint on this architecture.  Try using\n\
! a command like `return' or `jump' to continue execution.\n");
!   return_to_top_level (RETURN_ERROR);
  }
  #endif
     
--- 232,241 ----
  static void
  default_skip_permanent_breakpoint (void)
  {
!   error ("\
  The program is stopped at a permanent breakpoint, but GDB does not know\n\
  how to step past a permanent breakpoint on this architecture.  Try using\n\
! a command like `return' or `jump' to continue execution.");
  }
  #endif
     
Index: linespec.c
===================================================================
RCS file: /cvs/src/src/gdb/linespec.c,v
retrieving revision 1.13
diff -p -r1.13 linespec.c
*** linespec.c	2001/12/10 22:04:10	1.13
--- linespec.c	2002/01/31 19:00:01
*************** extern char *operator_chars (char *, cha
*** 42,48 ****
  
  /* Prototypes for local functions */
  
! static void cplusplus_hint (char *name);
  
  static int total_number_of_methods (struct type *type);
  
--- 42,48 ----
  
  /* Prototypes for local functions */
  
! static void cplusplus_error (const char *name, const char *fmt, ...) ATTR_FORMAT (printf, 2, 3);
  
  static int total_number_of_methods (struct type *type);
  
*************** static struct symtabs_and_lines decode_l
*** 58,74 ****
  
  /* Helper functions. */
  
! /* While the C++ support is still in flux, issue a possibly helpful hint on
!    using the new command completion feature on single quoted demangled C++
!    symbols.  Remove when loose ends are cleaned up.   FIXME -fnf */
  
  static void
! cplusplus_hint (char *name)
  {
    while (*name == '\'')
      name++;
!   printf_filtered ("Hint: try '%s<TAB> or '%s<ESC-?>\n", name, name);
!   printf_filtered ("(Note leading single quote.)\n");
  }
  
  /* Return the number of methods described for TYPE, including the
--- 58,88 ----
  
  /* Helper functions. */
  
! /* Issue a helpful hint on using the command completion feature on
!    single quoted demangled C++ symbols as part of the completion
!    error.  */
  
  static void
! cplusplus_error (const char *name, const char *fmt, ...)
  {
+   struct ui_file *tmp_stream;
+   tmp_stream = mem_fileopen ();
+   make_cleanup_ui_file_delete (tmp_stream);
+ 
+   {
+     va_list args;
+     va_start (args, fmt);
+     vfprintf_unfiltered (tmp_stream, fmt, args);
+     va_end (args);
+   }
+ 
    while (*name == '\'')
      name++;
!   fprintf_unfiltered (tmp_stream,
! 		      ("Hint: try '%s<TAB> or '%s<ESC-?>\n"
! 		       "(Note leading single quote.)"),
! 		      name, name);
!   error_stream (tmp_stream);
  }
  
  /* Return the number of methods described for TYPE, including the
*************** decode_line_1 (char **argptr, int funfir
*** 722,731 ****
     opname = cplus_mangle_opname (tmp, DMGL_ANSI);
     if (opname == NULL)
     {
!    error_begin ();
!    printf_filtered ("no mangling for \"%s\"\n", tmp);
!    cplusplus_hint (saved_arg);
!    return_to_top_level (RETURN_ERROR);
     }
     copy = (char*) alloca (3 + strlen(opname));
     sprintf (copy, "__%s", opname);
--- 736,742 ----
     opname = cplus_mangle_opname (tmp, DMGL_ANSI);
     if (opname == NULL)
     {
!    cplusplus_error (saved_arg, "no mangling for \"%s\"\n", tmp);
     }
     copy = (char*) alloca (3 + strlen(opname));
     sprintf (copy, "__%s", opname);
*************** decode_line_1 (char **argptr, int funfir
*** 810,826 ****
  			}
  		      else
  			tmp = copy;
- 		      error_begin ();
  		      if (tmp[0] == '~')
! 			printf_filtered
! 			  ("the class `%s' does not have destructor defined\n",
! 			   SYMBOL_SOURCE_NAME (sym_class));
  		      else
! 			printf_filtered
! 			  ("the class %s does not have any method named %s\n",
! 			   SYMBOL_SOURCE_NAME (sym_class), tmp);
! 		      cplusplus_hint (saved_arg);
! 		      return_to_top_level (RETURN_ERROR);
  		    }
  		}
  
--- 821,834 ----
  			}
  		      else
  			tmp = copy;
  		      if (tmp[0] == '~')
! 			cplusplus_error (saved_arg,
! 					 "the class `%s' does not have destructor defined\n",
! 					 SYMBOL_SOURCE_NAME (sym_class));
  		      else
! 			cplusplus_error (saved_arg,
! 					 "the class %s does not have any method named %s\n",
! 					 SYMBOL_SOURCE_NAME (sym_class), tmp);
  		    }
  		}
  
*************** decode_line_1 (char **argptr, int funfir
*** 873,884 ****
  	    goto symbol_found;
  
  	  /* Couldn't find any interpretation as classes/namespaces, so give up */
- 	  error_begin ();
  	  /* The quotes are important if copy is empty.  */
! 	  printf_filtered
! 	    ("Can't find member of namespace, class, struct, or union named \"%s\"\n", copy);
! 	  cplusplus_hint (saved_arg);
! 	  return_to_top_level (RETURN_ERROR);
  	}
        /*  end of C++  */
  
--- 881,890 ----
  	    goto symbol_found;
  
  	  /* Couldn't find any interpretation as classes/namespaces, so give up */
  	  /* The quotes are important if copy is empty.  */
! 	  cplusplus_error (saved_arg,
! 			   "Can't find member of namespace, class, struct, or union named \"%s\"\n",
! 			   copy);
  	}
        /*  end of C++  */
  
Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.58
diff -p -r1.58 utils.c
*** utils.c	2002/01/31 04:10:51	1.58
--- utils.c	2002/01/31 19:00:12
*************** warning (const char *string,...)
*** 600,606 ****
     error() provides a convenient way to do this for the special case
     that the error message can be formatted with a single printf call,
     but this is more general.  */
! void
  error_begin (void)
  {
    if (error_begin_hook)
--- 600,606 ----
     error() provides a convenient way to do this for the special case
     that the error message can be formatted with a single printf call,
     but this is more general.  */
! static void
  error_begin (void)
  {
    if (error_begin_hook)

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]