Gdb generates location list without DW_AT_frame_base

Daniel Berlin
Fri Dec 31 20:16:00 GMT 2004

> 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_pointer_needed ? hard_frame_pointer_rtx : 
 	  add_AT_loc (subr_die, DW_AT_frame_base, reg_loc_descriptor 


More information about the Gdb mailing list