Skip to content
  • Yao Qi's avatar
    Delete reinsert breakpoints from forked child · 8a81c5d7
    Yao Qi authored
    When a thread is stepping over a syscall instruction with software
    single step, GDBserver inserts reinsert breakpoints at the next pcs.
    If the syscall call is fork, the forked child has reinsert breakpoint
    in its space, and GDBserver clones parent's breakpoint list to child's.
    When GDBserver resumes the child, its bp_reinsert is zero, but has
    reinsert breakpoints, so the following assert is triggered if I apply
    the patch extending step-over-syscall.exp.
    
    gdb/gdbserver/linux-low.c:4292: A problem internal to GDBserver has been detected.^M
    void linux_resume_one_lwp_throw(lwp_info*, int, int, siginfo_t*): Assertion `!has_reinsert_breakpoints (proc)' failed.
    
    gdb/gdbserver:
    
    2016-06-17  Yao Qi  <yao.qi@linaro.org>
    
    	* linux-low.c (handle_extended_wait): If the parent is doing
    	step-over, remove the reinsert breakpoints from the forked child.
    8a81c5d7