This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] Show some tips when file cmd get bfd_error_file_ambiguously_recognized
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Hui Zhu <teawater at gmail dot com>
- Cc: gdb-patches ml <gdb-patches at sourceware dot org>, Tristan Gingold <gingold at adacore dot com>, Daniel Jacobowitz <dan at codesourcery dot com>
- Date: Thu, 14 Jan 2010 11:13:48 +0100
- Subject: Re: [RFA] Show some tips when file cmd get bfd_error_file_ambiguously_recognized
- References: <daef60381001131843u683d35d2nf937db926cea9740@mail.gmail.com>
On Thu, 14 Jan 2010 03:43:58 +0100, Hui Zhu wrote:
> exec_file_attach (char *filename, int from_tty)
> {
> + char **matching;
This new variable could be moved to one more inner block.
> + if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
> + {
> + char **p = matching;
There is commonly an empty line between declarations and first code line.
> + fprintf_filtered (gdb_stderr, _("\"%s\":Matching formats:"),
> + scratch_pathname);
Missing space before "Matching formats".
Isn't it "Matching targets" instead?
Anyway I would still prefer to print even bfd_errmsg() for it as it is now IMO
unclear why "Matching formats" has been printed and that any error occured:
> "/ls":Matching formats: elf32-nbigmips elf32-ntradbigmips
> Use command "set gnutarget" handle it.
> + while (*p)
> + fprintf_filtered (gdb_stderr, " %s", *p++);
(Only a personal preference: for (p = matching; *p != NULL; p++)
as this is the most common iterating loop, nothing special to use `while'.)
> + fprintf_filtered (gdb_stderr, "\n");
(There exists also fputc_filtered.)
> + free (matching);
Use xfree (see gdbint); despite the memory does not come from xmalloc.
> + error (_("Use command \"set gnutarget\" handle it."));
Missing "to" - "to handle it"; or just use _("Use command \"...\".").
> + }
> + else
> + error (_("\"%s\": not in executable format: %s"),
> + scratch_pathname, bfd_errmsg (bfd_get_error ()));
> }
>
> /* FIXME - This should only be run for RS6000, but the ifdef is a poor
Your patch has been sent with spaces (' ') instead of tabs ('\t') to follow
the GNU coding style (not using `indent -nut').
Regards,
Jan