Bug 9695 - BFD internal error while using oprofile on Gentoo with binutils 2.19
Summary: BFD internal error while using oprofile on Gentoo with binutils 2.19
Status: RESOLVED FIXED
Alias: None
Product: binutils
Classification: Unclassified
Component: binutils (show other bugs)
Version: 2.19
: P2 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-30 04:01 UTC by ultip
Modified: 2009-01-19 06:12 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
Output of opreport with no arguments. (6.80 KB, text/plain)
2008-12-31 21:41 UTC, ultip
Details
possible patch - just removes the abort. (396 bytes, patch)
2009-01-02 16:02 UTC, Nick Clifton
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description ultip 2008-12-30 04:01:56 UTC
While running opreport --callgraph on my gentoo box I get this error, and no
callgraph output:

warning: [vdso] (tgid:13725 range:0xb8032000-0xb8033000) could not be
found.
warning: [vdso] (tgid:15520 range:0xb807d000-0xb807e000) could not be
found.
CPU: CPU with timer interrupt, speed 0 MHz (estimated)
Profiling through timer interrupt
BFD: BFD (GNU Binutils) 2.19 internal error, aborting at
/var/tmp/portage/sys-devel/binutils-2.19/work/binutils-2.19/bfd/pdp11.c
line 528 in aout_16_some_aout_object_p

I've filed a bugreport with the oprofile tracker already. This problem occurs
intermittently, and probably depends on some specific binary that BFD is choking on.
Comment 1 Nick Clifton 2008-12-30 07:49:17 UTC
Subject: Re:  New: BFD internal error while using oprofile
 on	Gentoo with binutils 2.19

Hi ultip,

> BFD: BFD (GNU Binutils) 2.19 internal error, aborting at
> /var/tmp/portage/sys-devel/binutils-2.19/work/binutils-2.19/bfd/pdp11.c
> line 528 in aout_16_some_aout_object_p

> I've filed a bugreport with the oprofile tracker already. This problem occurs
> intermittently, and probably depends on some specific binary that BFD is choking on.

It does, and without one to examine we are not going to be able to fix 
the problem.  Please could you upload a (compressed) binary for us to 
look at ?

Cheers
   Nick


Comment 2 ultip 2008-12-31 21:37:29 UTC
I don't actually know which binary it's choking on unfortunately, and I don't
know how to narrow it down. I did manage to reproduce the error though. This
time a couple of warnings about binaries show up before the error, but they may
not have anything to do with the error. Here's the output:

warning: [vdso] (tgid:1014 range:0xb7f33000-0xb7f34000) could not be found.
warning: [vdso] (tgid:1040 range:0xb7fab000-0xb7fac000) could not be found.
warning: [vdso] (tgid:1088 range:0xb80ce000-0xb80cf000) could not be found.
warning: [vdso] (tgid:1114 range:0xb805b000-0xb805c000) could not be found.
warning: [vdso] (tgid:1124 range:0xb7fe3000-0xb7fe4000) could not be found.
warning: [vdso] (tgid:13704 range:0xb7f0d000-0xb7f0e000) could not be found.
warning: [vdso] (tgid:13737 range:0xb7ffc000-0xb7ffd000) could not be found.
warning: [vdso] (tgid:14730 range:0xb7f4f000-0xb7f50000) could not be found.
warning: [vdso] (tgid:14765 range:0xb7fee000-0xb7fef000) could not be found.
warning: [vdso] (tgid:14832 range:0xb7fd9000-0xb7fda000) could not be found.
warning: [vdso] (tgid:15028 range:0xb7f0a000-0xb7f0b000) could not be found.
warning: [vdso] (tgid:15035 range:0xb8004000-0xb8005000) could not be found.
warning: [vdso] (tgid:15041 range:0xb803d000-0xb803e000) could not be found.
warning: [vdso] (tgid:15180 range:0xb7f35000-0xb7f36000) could not be found.
warning: [vdso] (tgid:15239 range:0xb7f5c000-0xb7f5d000) could not be found.
warning: [vdso] (tgid:15520 range:0xb807d000-0xb807e000) could not be found.
warning: [vdso] (tgid:19489 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19492 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19781 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19492 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19781 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19794 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:19944 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:20994 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21137 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21295 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21438 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21597 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21735 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:21747 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:22491 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:24931 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:28461 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:28684 range:0xb7f1c000-0xb7f1d000) could not be found.
warning: [vdso] (tgid:28758 range:0xb7f9f000-0xb7fa0000) could not be found.
warning: [vdso] (tgid:28760 range:0xb8089000-0xb808a000) could not be found.
warning: [vdso] (tgid:28773 range:0xb7f4c000-0xb7f4d000) could not be found.
warning: [vdso] (tgid:28784 range:0xb7f34000-0xb7f35000) could not be found.
warning: [vdso] (tgid:28773 range:0xb7f4c000-0xb7f4d000) could not be found.
warning: [vdso] (tgid:28784 range:0xb7f34000-0xb7f35000) could not be found.
warning: [vdso] (tgid:29188 range:0xb7f67000-0xb7f68000) could not be found.
warning: [vdso] (tgid:29190 range:0xb8041000-0xb8042000) could not be found.
warning: [vdso] (tgid:29681 range:0x4001d000-0x4001e000) could not be found.
warning: [vdso] (tgid:31572 range:0xb80d4000-0xb80d5000) could not be found.
warning: [vdso] (tgid:32424 range:0xb7ff5000-0xb7ff6000) could not be found.
warning: [vdso] (tgid:32460 range:0xb805c000-0xb805d000) could not be found.
warning: [vdso] (tgid:32477 range:0xb8033000-0xb8034000) could not be found.
warning: [vdso] (tgid:845 range:0xb7f02000-0xb7f03000) could not be found.
warning: [vdso] (tgid:858 range:0xb7fe6000-0xb7fe7000) could not be found.
warning: [vdso] (tgid:925 range:0xb7f0a000-0xb7f0b000) could not be found.
warning: [vdso] (tgid:990 range:0xb80ce000-0xb80cf000) could not be found.
warning: /etc/ld.so.cache is not in a usable binary format.
warning: /opt/sun-jre-bin-1.6.0.06/lib/i386/client/classes.jsa is not in a usab$
warning: /usr/lib/gconv/gconv-modules.cache is not in a usable binary format.
BFD: BFD (GNU Binutils) 2.19 internal error, aborting at /var/tmp/portage/sys-d$

BFD: Please report this bug.

I'll also include the output of opreport with no arguments that shows what
processes were in the sample when the error occurred in --callgraph mode.
The file is very large, so I'm attaching it instead of pasting it. Please let me
know if you have any ideas on how to narrow it down. I will of course try to
reproduce this without X running at some point, but there will still be several
different binaries to look at. (I did see the output of opreport when I first
got the error, without X running, but none of the entries seemed obvious
candidates).

Comment 3 ultip 2008-12-31 21:41:26 UTC
Created attachment 3630 [details]
Output of opreport with no arguments.

This output corresponds to the oprofile sample that chokes bfd when in
callgraph mode.
Comment 4 Nick Clifton 2009-01-02 16:02:55 UTC
Created attachment 3631 [details]
possible patch - just removes the abort.
Comment 5 Nick Clifton 2009-01-02 16:06:14 UTC
Hi utilp,

  Well something strange is going on with your opreport session since it is
clearly trying to examine files which it should not need to look at.

  Presumably the problem in the BFD library is being triggered because it is
being passed one of the unexpected files to examine and it is trying to treat
the file as if it were a proper executable binary.  Please could you try out the
uploaded patch which *might* fix the problem.  Without a testcase I cannot be
any more certain than that.

Cheers
  Nick
Comment 6 Andreas Schwab 2009-01-02 17:21:54 UTC
pdp11.c defines

#define N_BADMAG(x) (((x).a_info != OMAGIC)   \
		  && ((x).a_info != NMAGIC)   \
		  && ((x).a_info != A_MAGIC3) \
		  && ((x).a_info != A_MAGIC4) \
		  && ((x).a_info != A_MAGIC5) \
		  && ((x).a_info != A_MAGIC6))

but some_aout_object_p doesn't actually handle A_MAGIC[3-6].
Comment 7 Sourceware Commits 2009-01-19 06:11:34 UTC
Subject: Bug 9695

CVSROOT:	/cvs/src
Module name:	src
Changes by:	amodra@sourceware.org	2009-01-19 06:11:23

Modified files:
	bfd            : ChangeLog pdp11.c 

Log message:
	PR 9695
	* pdp11.c (N_BADMAG): True for anything but OMAGIC, NMAGIC, ZMAGIC.
	(some_aout_object_p): Delete dead code handling QMAGIC and BMAGIC.
	(adjust_z_magix): Delete dead code handling QMAGIC.

Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/ChangeLog.diff?cvsroot=src&r1=1.4425&r2=1.4426
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/bfd/pdp11.c.diff?cvsroot=src&r1=1.39&r2=1.40

Comment 8 Alan Modra 2009-01-19 06:12:42 UTC
.