Subject: Re: CVS commit: src/gnu/dist/gcc/gcc/config/i386
To: matthew green <mrg@eterna.com.au>
From: Matthias Drochner <M.Drochner@fz-juelich.de>
List: tech-toolchain
Date: 06/01/2004 18:45:35
[the gcc-3.3 dwarf debug info problem, PR toolchain/25094]

I've tried to gather some information about this.

This looks very much like an alignment problem:
(gdb) p x
$1 = {c = 97 'a', d = 6.1550979899862711e+170}
(gdb) p &x
$2 = (struct astruct *) 0xbfbfed10
(gdb) p &x.d
$3 = (double *) 0xbfbfed18

The "double" should be 4-byte aligned. (It is in the code, but
the dwarf2 info is wrong.)
I've checked a gcc-3.3.3 on Linux, and it fails in a similar way.

There are some related PRs in gcc's bugzilla, eg ##6522, 10360,
14142, 14190, 14191.
They are all more or less put down by the gcc people, there is
not much hope that the problem will be fixed in gcc-3.3.x.
(gcc-3.4 works, but there are serious structural changes which
let a backport appear infaesible to me.)

So it seems we have to live with either buggy dwarf debugging
or incomplete stabs debugging for now...

best regards
Matthias