This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] print a more useful error message for "gdb core"
On Wed, Jan 20, 2010 at 3:56 PM, Doug Evans <dje@google.com> wrote:
> Hi.
>
> If the user accidentally does "gdb core" gdb currently prints:
>
> "/foo/bar": not in executable format: File format not recognized
>
> This patch prints a more useful error message for this particular case:
>
> "/foo/bar" is a core file.
> Please specify an executable to debug.
>
> I will check this in in a few days if there are no objections.
As noted in irc, the joys of working between multiple trees.
The previous patch didn't call exec_close.
Here's an updated patch.
2010-01-20 Doug Evans <dje@google.com>
* exec.c (exec_file_attach): Print a more useful error message if the
user did "gdb core".
Index: exec.c
===================================================================
RCS file: /cvs/src/src/gdb/exec.c,v
retrieving revision 1.95
diff -u -p -r1.95 exec.c
--- exec.c 19 Jan 2010 09:47:47 -0000 1.95
+++ exec.c 21 Jan 2010 00:10:17 -0000
@@ -253,6 +253,18 @@ exec_file_attach (char *filename, int fr
scratch_pathname = xstrdup (scratch_pathname);
cleanups = make_cleanup (xfree, scratch_pathname);
+ /* If the user accidentally did "gdb core", print a useful
+ error message. */
+ if (bfd_check_format (exec_bfd, bfd_core))
+ {
+ /* Make sure to close exec_bfd, or else "run" might try to use
+ it. */
+ exec_close ();
+ error (_("\"%s\" is a core file.\n"
+ "Please specify an executable to debug."),
+ scratch_pathname);
+ }
+
if (!bfd_check_format (exec_bfd, bfd_object))
{
/* Make sure to close exec_bfd, or else "run" might try to use