diff -rupN binutils-2.25.1.orig/binutils/addr2line.c binutils-2.25.1/binutils/addr2line.c --- binutils-2.25.1.orig/binutils/addr2line.c 2015-12-17 16:39:14.956344244 +0200 +++ binutils-2.25.1/binutils/addr2line.c 2015-12-17 16:59:13.060296646 +0200 @@ -194,6 +194,7 @@ find_address_in_section (bfd *abfd, asec static void find_offset_in_section (bfd *abfd, asection *section) { + bfd_vma vma; bfd_size_type size; if (found) @@ -202,11 +203,15 @@ find_offset_in_section (bfd *abfd, asect if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0) return; + vma = bfd_get_section_vma (abfd, section); + if (pc < vma) + return; + size = bfd_get_section_size (section); - if (pc >= size) + if (pc >= vma + size) return; - found = bfd_find_nearest_line_discriminator (abfd, section, syms, pc, + found = bfd_find_nearest_line_discriminator (abfd, section, syms, pc - vma, &filename, &functionname, &line, &discriminator); }