aboutsummaryrefslogtreecommitdiff
path: root/binutils/objdump.c
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1999-10-28 03:30:13 +0000
committerIan Lance Taylor <ian@airs.com>1999-10-28 03:30:13 +0000
commitd24de309dfc187688fee3e6f23a960ea46986f58 (patch)
treee3760177539c525f2f0beab98e709e2dce53fa1f /binutils/objdump.c
parentacb5662391fc6d5b6b8ede0217df17c0af177f25 (diff)
downloadgdb-d24de309dfc187688fee3e6f23a960ea46986f58.zip
gdb-d24de309dfc187688fee3e6f23a960ea46986f58.tar.gz
gdb-d24de309dfc187688fee3e6f23a960ea46986f58.tar.bz2
1999-10-27 Fred Fish <fnf@cygnus.com>
* objdump.c (display_bfd): Break into two functions. The actual dumping code moves to dump_bfd. If bfd is not unambiguously recognized as a bfd_object, attempt to dump it as a bfd_core. (dump_bfd): New function.
Diffstat (limited to 'binutils/objdump.c')
-rw-r--r--binutils/objdump.c58
1 files changed, 44 insertions, 14 deletions
diff --git a/binutils/objdump.c b/binutils/objdump.c
index 92805d3..71bb65f 100644
--- a/binutils/objdump.c
+++ b/binutils/objdump.c
@@ -2042,23 +2042,12 @@ bfd *abfd;
bfd_print_private_bfd_data (abfd, stdout);
}
+/* Dump selected contents of ABFD */
+
static void
-display_bfd (abfd)
+dump_bfd (abfd)
bfd *abfd;
{
- char **matching;
-
- if (!bfd_check_format_matches (abfd, bfd_object, &matching))
- {
- nonfatal (bfd_get_filename (abfd));
- if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
- {
- list_matching_formats (matching);
- free (matching);
- }
- return;
- }
-
/* If we are adjusting section VMA's, change them all now. Changing
the BFD information is a hack. However, we must do it, or
bfd_find_nearest_line will not do the right thing. */
@@ -2135,6 +2124,47 @@ display_bfd (abfd)
}
static void
+display_bfd (abfd)
+ bfd *abfd;
+{
+ char **matching;
+
+ if (bfd_check_format_matches (abfd, bfd_object, &matching))
+ {
+ dump_bfd (abfd);
+ return;
+ }
+
+ if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
+ {
+ nonfatal (bfd_get_filename (abfd));
+ list_matching_formats (matching);
+ free (matching);
+ return;
+ }
+
+ if (bfd_get_error () != bfd_error_file_not_recognized)
+ {
+ nonfatal (bfd_get_filename (abfd));
+ return;
+ }
+
+ if (bfd_check_format_matches (abfd, bfd_core, &matching))
+ {
+ dump_bfd (abfd);
+ return;
+ }
+
+ nonfatal (bfd_get_filename (abfd));
+
+ if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
+ {
+ list_matching_formats (matching);
+ free (matching);
+ }
+}
+
+static void
display_file (filename, target)
char *filename;
char *target;