Re: [PATCHv2] Make "skip" work on inline frames

Simon Marchi
2019-10-27T01:52:35Z

On 2019-10-20 2:48 a.m., Bernd Edlinger wrote:
> 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.

Hi Bernd,

Sorry for the delay. I'll start looking at this patch, but I first need to play with
it a bit first and get more familiar with that area of the code.

In the mean time, I looked for your name in the copyright assignment list, and don't find
it. I think this patch is large enough to warrant one Do you already have one in place?
If not, please follow instructions here:

https://git.savannah.gnu.org/cgit/gnulib.git/tree/doc/Copyright/request-assign.future

Simon