Re: 2.6.3 Heisenbug in unwind.c

From: David Mosberger <>
Date: 2004-03-11 18:56:03
>>>>> On Wed, 10 Mar 2004 16:27:07 +1100, Keith Owens <> said:

  Keith> One possible contender for this unwind Heisenbug.  Building a
  Keith> 2.6.4-rc3 kernel with gcc version 3.2.3 20030502 (Red Hat
  Keith> Linux 3.2.3-24) and GNU ld version 20030523.  The
  Keith> unwind data in vmlinux is invalid, with overlapping entries.
  Keith> If this command reports anything at all then your unwind data
  Keith> is stuffed.

  Keith> readelf -u vmlinux | grep '+[a-f0-9]*>:' | head -5

  Keith> An extract of the descriptor triplets looks like this.  It
  Keith> seems that the unwind descriptors for .text and .init.text
  Keith> have been merged together, as if both sections started at the
  Keith> same offset.

  Keith> 00015a00 00015a70 005ced40
  Keith> 00015a80 00015b20 005ced58
  Keith> 00015ac0 00015d10 005c6828 Illegal insert, belongs to __init text
  Keith> 00015b20 00015ca0 005ced70
  Keith> 00015ca0 00015d30 005ced90
  Keith> 00015d20 00015e50 005c6848 Illegal insert, belongs to __init text
  Keith> 00015d40 00015f90 005ceda8
  Keith> 00015e60 00015f90 005c6868
  Keith> 00015fa0 000162e0 005c6888

How nasty!

I don't see this problem with:

	gcc version 3.3.3 20040125
	ld version 20031029 Debian GNU/Linux

I doubt it's a gcc bug.  Can you try with a more recent version
of binutils?

  Keith> Depending on precisely where the interrupt occurs, you may
  Keith> pick up a correct or an incorrect unwind descriptor.  Which
  Keith> in turn affects the backtrace, and explains why changing code
  Keith> size may the Heisenbug move.

Yeah, that would certainly explain it!  Good hunting!

To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to
More majordomo info at
Received on Thu Mar 11 02:56:18 2004

This archive was generated by hypermail 2.1.8 : 2005-08-02 09:20:24 EST