This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: CFA expression failure
- From: Daniel Jacobowitz <drow at false dot org>
- To: "Ye, Joey" <joey dot ye at intel dot com>
- Cc: gcc at gcc dot gnu dot org, "Guo, Xuepeng" <xuepeng dot guo at intel dot com>, "Lu, Hongjiu" <hongjiu dot lu at intel dot com>
- Date: Wed, 25 Jun 2008 09:58:55 -0400
- Subject: Re: CFA expression failure
- References: <BB577BF501703042AD7E08EADD8E514FF5DE3D@pdsmsx415.ccr.corp.intel.com>
On Wed, Jun 25, 2008 at 10:02:40AM +0800, Ye, Joey wrote:
> Daniel,
>
> We generate following DWARF2 instructions for stack alignment prologue.
> Basically we use expression to calculate CFA. But it run into some
> segfault in libmudflap and libjava. Do you have any hints what's wrong?
The only thing I could see was that this is wrong:
> DW_CFA_advance_loc: 7 to 0000000c
> DW_CFA_expression: r5 (ebp) (DW_OP_breg5: 0)
> b: 55 push %ebp
> c: 89 e5 mov %esp,%ebp
At eip == 0xc then %ebp is not yet set, so saved %ebp is not at
0(%ebp) yet. That's true at 0xe; at 0xc the saved location of %ebp is
harder to describe. But that won't explain your crashes. The debug
info looks unusual, but correct.
--
Daniel Jacobowitz
CodeSourcery