Downgrade addr2line fatal errors to non-fatal

* addr2line.c (slurp_symtab): Don't exit on errors.
	(process_file): Likewise.
This commit is contained in:
Alan Modra
2023-03-06 10:42:59 +10:30
parent 86a2562b09
commit 5db0367e1b

View File

@@ -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;