[PATCHv2] Make "skip" work on inline frames

Bernd Edlinger bernd.edlinger@hotmail.de
Sun Oct 20 06:48:00 GMT 2019


On 10/19/19 6:38 AM, Bernd Edlinger wrote:
> Hmm,
> 
> I noticed that the patch does not yet handle
> the step <count> correctly, the count is decremented
> although the inline frame is skipped and should not be
> counted...
> 
> Thus I will need to change at least this:
> 
> --- a/gdb/infcmd.c
> +++ b/gdb/infcmd.c
> @@ -1122,7 +1122,6 @@ prepare_one_step (struct step_command_fsm *sm)
>               set_running (resume_ptid, 1);
>  
>               step_into_inline_frame (tp);
> -             sm->count--;
>  
>               sal = find_frame_sal (frame);
>               sym = get_frame_function (frame);
> @@ -1132,13 +1131,17 @@ prepare_one_step (struct step_command_fsm *sm)
>  
>               if (sal.line == 0
>                   || !function_name_is_marked_for_skip (fn, sal))
> -               return prepare_one_step (sm);
> +               {
> +                 sm->count--;
> +                 return prepare_one_step (sm);
> +               }
>             }
>  
> 

Attached is an updated patch that fixes this issue,
and also adds the following after step_into_inline_frame ():

frame = get_current_frame ();

That I consider safer, since this function calls reinit_frame_cache ().
It was probably just by chance that this did not seem to cause any
problems for me.


Thanks
Bernd.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Check-all-inline-frames-if-they-are-marked-for-skip.patch
Type: text/x-patch
Size: 4461 bytes
Desc:  0001-Check-all-inline-frames-if-they-are-marked-for-skip.patch
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20191020/92090dad/attachment.bin>


More information about the Gdb-patches mailing list