Re: [PATCH] Fix problems with finishing a dummy function call on simulators.

Luis Machado
2015-07-06T15:33:44Z

On 07/06/2015 12:06 PM, Pedro Alves wrote:
> Hi Luis,
>
> Looks like this regressed gdbserver somehow.
>
> On 06/17/2015 09:16 PM, Luis Machado wrote:
>> On 06/17/2015 10:43 AM, Pedro Alves wrote:
>>> On 06/17/2015 02:26 PM, Luis Machado wrote:
>>>> On 06/17/2015 09:40 AM, Pedro Alves wrote:
>>>
>>>>> Yep. Close, but also remove the bp_call_dummy check in
>>>>> bp_loc_is_permanent, and merge in its comment, like ...
>>>>>
>>>>
>>>> Fixed now.
>>>
>>> Looks good now. Thanks.
>>>
>>>> The attached updated patch also removes this dead function. I can commit
>>>> it as a separate patch if you're not removing it yourself.
>>>
>>> Nah, I was hoping you'd remove it. :-) Please also remove the
>>> make_breakpoint_permanent declaration from breakpoint.h though.
>>
>> Thanks. I've pushed this in now and pushed the removal with a different
>> patch.
>>
>
> Compared to before the patch, I see these:
>
> -PASS: gdb.base/shlib-call.exp: print mainshr1(1)
> -PASS: gdb.base/shlib-call.exp: step into mainshr1
> +FAIL: gdb.base/shlib-call.exp: print mainshr1(1)
> +FAIL: gdb.base/shlib-call.exp: step into mainshr1
> PASS: gdb.base/shlib-call.exp: set print sevenbit-strings
> PASS: gdb.cp/chained-calls.exp: g(f())
> -PASS: gdb.cp/chained-calls.exp: q(p())
> +FAIL: gdb.cp/chained-calls.exp: q(p())
> PASS: gdb.cp/chained-calls.exp: p() + r()
> -PASS: gdb.cp/chained-calls.exp: q(p() + r())
> +FAIL: gdb.cp/chained-calls.exp: q(p() + r())
> PASS: gdb.cp/chained-calls.exp: g(f() + f())
> -PASS: gdb.cp/chained-calls.exp: g(f(g(f() + f())) + f())
> +FAIL: gdb.cp/chained-calls.exp: g(f(g(f() + f())) + f())
> PASS: gdb.cp/chained-calls.exp: getb(makeb(), ...)
> -PASS: gdb.cp/chained-calls.exp: *c
> -PASS: gdb.cp/chained-calls.exp: *c + *c
> -PASS: gdb.cp/chained-calls.exp: q(*c + *c)
> +FAIL: gdb.cp/chained-calls.exp: *c
> +FAIL: gdb.cp/chained-calls.exp: *c + *c
> +FAIL: gdb.cp/chained-calls.exp: q(*c + *c)
>
> PASS: gdb.cp/classes.exp: print cnsi with static members
> PASS: gdb.cp/classes.exp: finish from marker_reg1
> -PASS: gdb.cp/classes.exp: calling method for small class
> +FAIL: gdb.cp/classes.exp: calling method for small class
>
> git bisect pointed to this commit:
>
> 6ae8866180bf90e9ec76c2dd34c07fd826d11a83 is the first bad commit
> commit 6ae8866180bf90e9ec76c2dd34c07fd826d11a83
> Author: Luis Machado <lgustavo@codesourcery.com>
> Date: Wed Jun 17 16:50:57 2015 -0300
>
> Fix problems with finishing a dummy function call on simulators.
>
> I don't have an offhand explanation for the regressions.
>
> This is just:
>
> make check RUNTESTFLAGS="--target_board=native-gdbserver"
>
> on x86_64 Fedora 20.
>
> Thanks,
> Pedro Alves
>

I'll take a look at it. I suppose this will block the branching?

Then again, simply reverting this will still have bad results with some
simulators.