This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Gdb generates location list without DW_AT_frame_base



This patch seems to generate better debug info.

You missed a whole bunch of cases where we are arbitrarily passing true to mem_loc_descriptor or loc_descriptor.
You also *can* generate a frame base for the testcase you sent me, we just don't use all the info we could to generate it.
See the last patch i sent you which adds code to the add_location_or_const_value_attribute routine.


Also, whether we generate a frame_base has *nothing* to do with the setting of TREE_PUBLIC.

The code says:

else if (!DECL_EXTERNAL (decl))
{
....


/* Define the "frame base" location for this routine. We use the
frame pointer or stack pointer registers, since the RTL for local
variables is relative to one of them. */
if (frame_base_decl && lookup_decl_loc (frame_base_decl) != NULL)
{
add_location_or_const_value_attribute (subr_die, frame_base_decl,
DW_AT_frame_base);
}
else
{
fp_reg
= frame_pointer_needed ? hard_frame_pointer_rtx : stack_pointer_rtx;
add_AT_loc (subr_die, DW_AT_frame_base, reg_loc_descriptor (fp_reg));
}


}


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]