linux-user: fix the breakpoint inheritance in spawned threads
When a thread is spawned, cpu_copy re-initializes the bp & wp lists of current thread, instead of the ones of the new thread. The effect is that breakpoints are no longer hit. Signed-off-by: Thierry Bultel <thierry.bultel@basystemes.fr> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
876e23cb2e
commit
1d085f6cae
|
@ -3459,8 +3459,8 @@ CPUArchState *cpu_copy(CPUArchState *env)
|
||||||
/* Clone all break/watchpoints.
|
/* Clone all break/watchpoints.
|
||||||
Note: Once we support ptrace with hw-debug register access, make sure
|
Note: Once we support ptrace with hw-debug register access, make sure
|
||||||
BP_CPU break/watchpoints are handled correctly on clone. */
|
BP_CPU break/watchpoints are handled correctly on clone. */
|
||||||
QTAILQ_INIT(&cpu->breakpoints);
|
QTAILQ_INIT(&new_cpu->breakpoints);
|
||||||
QTAILQ_INIT(&cpu->watchpoints);
|
QTAILQ_INIT(&new_cpu->watchpoints);
|
||||||
QTAILQ_FOREACH(bp, &cpu->breakpoints, entry) {
|
QTAILQ_FOREACH(bp, &cpu->breakpoints, entry) {
|
||||||
cpu_breakpoint_insert(new_cpu, bp->pc, bp->flags, NULL);
|
cpu_breakpoint_insert(new_cpu, bp->pc, bp->flags, NULL);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue