diff options
author | Alan Modra <amodra@gmail.com> | 2023-03-06 10:42:59 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2023-03-06 13:11:22 +1030 |
commit | 5db0367e1b0bcbe22b987501ae1c77d7e890e6c8 (patch) | |
tree | 99bad37d95e7452ac264c26a3986f23c25eb5444 | |
parent | 86a2562b0958ed988e20a8b3a1b0029ff91dda3e (diff) | |
download | binutils-5db0367e1b0bcbe22b987501ae1c77d7e890e6c8.zip binutils-5db0367e1b0bcbe22b987501ae1c77d7e890e6c8.tar.gz binutils-5db0367e1b0bcbe22b987501ae1c77d7e890e6c8.tar.bz2 |
Downgrade addr2line fatal errors to non-fatal
* addr2line.c (slurp_symtab): Don't exit on errors.
(process_file): Likewise.
-rw-r--r-- | binutils/addr2line.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/binutils/addr2line.c b/binutils/addr2line.c index 1fe9ce2..afe116a 100644 --- a/binutils/addr2line.c +++ b/binutils/addr2line.c @@ -130,7 +130,10 @@ slurp_symtab (bfd *abfd) dynamic = true; } if (storage < 0) - bfd_fatal (bfd_get_filename (abfd)); + { + bfd_nonfatal (bfd_get_filename (abfd)); + return; + } syms = (asymbol **) xmalloc (storage); if (dynamic) @@ -138,7 +141,7 @@ slurp_symtab (bfd *abfd) else symcount = bfd_canonicalize_symtab (abfd, syms); if (symcount < 0) - bfd_fatal (bfd_get_filename (abfd)); + bfd_nonfatal (bfd_get_filename (abfd)); /* If there are no symbols left after canonicalization and we have not tried the dynamic symbols then give them a go. */ @@ -446,21 +449,27 @@ process_file (const char *file_name, const char *section_name, abfd->flags |= BFD_DECOMPRESS; if (bfd_check_format (abfd, bfd_archive)) - fatal (_("%s: cannot get addresses from archive"), file_name); + { + non_fatal (_("%s: cannot get addresses from archive"), file_name); + return 1; + } if (! bfd_check_format_matches (abfd, bfd_object, &matching)) { bfd_nonfatal (bfd_get_filename (abfd)); if (bfd_get_error () == bfd_error_file_ambiguously_recognized) list_matching_formats (matching); - xexit (1); + return 1; } if (section_name != NULL) { section = bfd_get_section_by_name (abfd, section_name); if (section == NULL) - fatal (_("%s: cannot find section %s"), file_name, section_name); + { + non_fatal (_("%s: cannot find section %s"), file_name, section_name); + return 1; + } } else section = NULL; |