23 lines
799 B
Diff
23 lines
799 B
Diff
*** ../binutils-2.23.52.0.1/binutils/addr2line.c 2013-02-27 20:28:03.000000000 +0000
|
||
--- binutils/addr2line.c 2013-03-13 16:46:36.109519735 +0000
|
||
*************** slurp_symtab (bfd *abfd)
|
||
*** 130,135 ****
|
||
--- 130,146 ----
|
||
symcount = bfd_canonicalize_symtab (abfd, syms);
|
||
if (symcount < 0)
|
||
bfd_fatal (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. */
|
||
+ if (symcount == 0
|
||
+ && ! dynamic
|
||
+ && (storage = bfd_get_dynamic_symtab_upper_bound (abfd)) > 0)
|
||
+ {
|
||
+ free (syms);
|
||
+ syms = xmalloc (storage);
|
||
+ symcount = bfd_canonicalize_dynamic_symtab (abfd, syms);
|
||
+ }
|
||
}
|
||
|
||
/* These global variables are used to pass information between
|