On Thu, 28 Nov 2013 09:42:16 +0100, Metzger, Markus T wrote: > We store the frame_id of the current frame and do a single-step. > Then we try to detect stepping into a subroutine by unwinding > the stack frames and comparing the frame_id's with our stored > frame_id. OK, understood now. In fact the time you change btinfo->replay you also change register contents. Therefore the registers_changed_ptid() call is there right. For the frame_id change one could also provide mapping of old frame_id to new frame_id in frame_id_eq() but that is worse than just re-setting it. > Do you have a better idea? I agree in general. Just: Rather than get_current_frame_nocheck I find safer to just temporarily switch off the executing flag. There are many other checks which make sense which were omitted. Calling set_step_info seems needlessly intrusive to me, there is no need to re-set tp->current_symtab + tp->current_line. Despite in the moment of record_btrace_start_replaying() I see step_frame_id should be the current frame id it does not have to be. Such as when we reverse-continue, it will be null_frame_id. The attached patch(es) is on top of yours. I still believe inferior should resume + wait if it changes its PC. I am again not sure if the patch passes without FAILs due to my BTS hardware. Thanks, Jan