* 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.
This commit is contained in:
parent
261c4ca206
commit
255e7dbf2e
|
@ -1,3 +1,15 @@
|
|||
2002-02-01 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.
|
||||
|
||||
2002-02-01 Andrew Cagney <ac131313@redhat.com>
|
||||
|
||||
* language.h (type_error, range_error): Make string parameter
|
||||
|
|
|
@ -668,13 +668,10 @@ coff_symfile_read (struct objfile *objfile, int mainline)
|
|||
{
|
||||
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);
|
||||
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
|
||||
|
|
|
@ -1068,9 +1068,6 @@ extern NORETURN void verror (const char *fmt, va_list ap) ATTR_NORETURN;
|
|||
|
||||
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
|
||||
|
|
|
@ -232,12 +232,10 @@ static int may_follow_exec = MAY_FOLLOW_EXEC;
|
|||
static void
|
||||
default_skip_permanent_breakpoint (void)
|
||||
{
|
||||
error_begin ();
|
||||
fprintf_filtered (gdb_stderr, "\
|
||||
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.\n");
|
||||
return_to_top_level (RETURN_ERROR);
|
||||
a command like `return' or `jump' to continue execution.");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ extern char *operator_chars (char *, char **);
|
|||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
static void cplusplus_hint (char *name);
|
||||
static void cplusplus_error (const char *name, const char *fmt, ...) ATTR_FORMAT (printf, 2, 3);
|
||||
|
||||
static int total_number_of_methods (struct type *type);
|
||||
|
||||
|
@ -58,17 +58,31 @@ static struct symtabs_and_lines decode_line_2 (struct symbol *[],
|
|||
|
||||
/* 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 */
|
||||
/* 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_hint (char *name)
|
||||
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++;
|
||||
printf_filtered ("Hint: try '%s<TAB> or '%s<ESC-?>\n", name, name);
|
||||
printf_filtered ("(Note leading single quote.)\n");
|
||||
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
|
||||
|
@ -722,10 +736,7 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
|
|||
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);
|
||||
cplusplus_error (saved_arg, "no mangling for \"%s\"\n", tmp);
|
||||
}
|
||||
copy = (char*) alloca (3 + strlen(opname));
|
||||
sprintf (copy, "__%s", opname);
|
||||
|
@ -810,17 +821,14 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
|
|||
}
|
||||
else
|
||||
tmp = copy;
|
||||
error_begin ();
|
||||
if (tmp[0] == '~')
|
||||
printf_filtered
|
||||
("the class `%s' does not have destructor defined\n",
|
||||
SYMBOL_SOURCE_NAME (sym_class));
|
||||
cplusplus_error (saved_arg,
|
||||
"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);
|
||||
cplusplus_error (saved_arg,
|
||||
"the class %s does not have any method named %s\n",
|
||||
SYMBOL_SOURCE_NAME (sym_class), tmp);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -873,12 +881,10 @@ decode_line_1 (char **argptr, int funfirstline, struct symtab *default_symtab,
|
|||
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);
|
||||
cplusplus_error (saved_arg,
|
||||
"Can't find member of namespace, class, struct, or union named \"%s\"\n",
|
||||
copy);
|
||||
}
|
||||
/* end of C++ */
|
||||
|
||||
|
|
|
@ -600,7 +600,7 @@ warning (const char *string,...)
|
|||
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
|
||||
static void
|
||||
error_begin (void)
|
||||
{
|
||||
if (error_begin_hook)
|
||||
|
|
Loading…
Reference in New Issue