diff options
author | Andrew Cagney <cagney@redhat.com> | 2002-02-02 03:42:59 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2002-02-02 03:42:59 +0000 |
commit | 255e7dbf2e106ccba748f1d34422d9df7fcc1038 (patch) | |
tree | 8049bf598088831675b090b7bbb04419768c308e | |
parent | 261c4ca20698ffa0b5efa6a0908c55aae31711e8 (diff) | |
download | gdb-255e7dbf2e106ccba748f1d34422d9df7fcc1038.zip gdb-255e7dbf2e106ccba748f1d34422d9df7fcc1038.tar.gz gdb-255e7dbf2e106ccba748f1d34422d9df7fcc1038.tar.bz2 |
* 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.
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/coffread.c | 11 | ||||
-rw-r--r-- | gdb/defs.h | 3 | ||||
-rw-r--r-- | gdb/infrun.c | 6 | ||||
-rw-r--r-- | gdb/linespec.c | 56 | ||||
-rw-r--r-- | gdb/utils.c | 2 |
6 files changed, 50 insertions, 40 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 233e3b0..27aff5f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,17 @@ 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 constant. * language.c (warning_pre_print): Delete extern declaration. diff --git a/gdb/coffread.c b/gdb/coffread.c index b765af9..69d06ba 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -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 diff --git a/gdb/infrun.c b/gdb/infrun.c index 8a5b302..1b0eb7e 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -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 diff --git a/gdb/linespec.c b/gdb/linespec.c index 98b13a4..ef3a28c 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -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++ */ diff --git a/gdb/utils.c b/gdb/utils.c index 2459dea..c3e5a50 100644 --- a/gdb/utils.c +++ b/gdb/utils.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) |