This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GDB does not show variables in inlined function
On Tue, Jan 06, 2004 at 05:33:33PM +0100, Josef Zlomek wrote:
> > > > > with inlining:
> > > > >
> > > > > .uleb128 0x2c # (DIE (0x2a5a) DW_TAG_variable)
> > > > > .long 0x2af2 # DW_AT_abstract_origin
> > > > > ^^^^^^
> > > > > .byte 0x1 # DW_AT_location
> > > > > .byte 0x56 # DW_OP_reg6
> > > > > ...
> > > > > .long 0x2d # DW_AT_type
> > > > > .uleb128 0x24 # (DIE (0x2af2) DW_TAG_variable)
> > > > > ^^^^^^
> > > > > .long .LASF850 # DW_AT_name: "incoming"
> > > > > .byte 0x1 # DW_AT_decl_file
> > > > > .value 0x3f32 # DW_AT_decl_line
> > > > > .long 0x2d # DW_AT_type
> > > > >
> > > > > The location seems not to be generated for the real variable record
> > > > > (2nd part after ...) with inlining.
> > > > >
> > > > > Should GCC generate the location for the second part (after ...) too,
> > > > > should GDB be able to link the descriptions through the marked number
> > > > > or something else?
> > > >
> > > > It's the former DIE (0x2a5a) which is in scope. It has the name
> > > > "incoming" through the abstract origin chain. So this is probably a
> > > > GDB issue.
> > > >
> > > > Up until recently that DW_AT_location in the concrete DIE was missing,
> > > > I believe. You might want to try this (incredibly lame, untested) GDB
> > > > patch. Let me know if it does something useful.
> > >
> > > Wow, that was fast!
> > > Yes, it works with your patch :-)
> >
> > Um... Josef, what GCC are you using? I didn't check tree-ssa, but
> > neither 3.3 nor HEAD produces those DW_AT_location entries, which is a
> > serious (and filed in bugzilla, IIRC?) bug.
>
> I used HEAD (maybe few days old) and compiled var-tracking.c from hammer-3_3-branch.
> I used "-g -O2 -dA" (-funit-at-a-time is default at -O2)
It's really a shame that this feature was never reviewed for 3.4; it
would be extremely useful. Let's make sure it goes in as soon as 3.4
has branched.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer