This is the mail archive of the gdb-patches@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] |
I'm not sure what the correct way to fix this issue would be.
However, simply removing the whole 'if' block makes signals.exp pass on s390. This is because both the handler and the signal return trampoline are now simply treated as calls into subroutines, and both are skipped with step_over_function, so that everything works just as expected.
Why is this if needed in the first place? Isn't this just to work around frame problems that caused step_over_function to not handle signal handlers correctly? I.e. if we have new-style frames that work properly, can't we just skip that whole if?
if (((stop_pc == ecs->stop_func_start /* Quick test */ || in_prologue (stop_pc, ecs->stop_func_start)) && !IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name)) || IN_SOLIB_CALL_TRAMPOLINE (stop_pc, ecs->stop_func_name) || ecs->stop_func_name == 0) { /* It's a subroutine call. */ handle_step_into_function (ecs); return; }
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |