So I think we should follow your suggestion above and separate
completely the two conditions, conditionalized by legacy_frame_p().
The function name we could use, at least for now, could be
handle_subroutine_call() or handle_step_into_function().
It seems that the correct test when legacy_frame_p() is nonzero
would only be the frame ID equality test, but I must admit being
nervous again not knowing how reliable the new frame implementations
are... Despite the fact that the current heuristics (check if PC ==
address of function first instruction or is inside function prologue)
doesn't cover 100% of the cases, it was still a simple, platform
independent, solid test that worked in most cases. We are about to
replace that by something that's a bit more complex and might cause some
unexpected behavior if the unwinder fails to unwind properly (imagine
for instance that the unwinder skipped one frame).
I am really torn, so I am relying on you who has had a closer look at
the frame implementations that have been converted so far. If it was
just me, I would be very conservative and simply add and extra
|| (legacy_frame_p() && frame_id_eq (...))
It only fixes one problem, but the changes of introducing another is
smaller. I am a coward :-).
-- Joel