[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-debug-dev] 1.2.1 Breakpoint Race Condition
|
Hi,
The ultimate use of Display.asyncExec() by the
CBreakpointManager.setBreakpoint to set break points produces a race
condition on the start of a debugging session that can allow the -exec
continue command to be sent before the breakpoints are set. If you are
using CDT launchers you probably need to have break on main unchecked to
get it to happen since as I recall that break insert is set by the launch
code and the pause that break supplies will mask the race with the other
breakpoints. (In the Tensilica launchers we automatically conditionally set
break on main dependent on the presence of other breakpoints in the
launching project.)
We always won the race when the user started a debug launch normally. We
lost it most of the time when the launch was started by right clicking an
existing running launch and the user selected "Relaunch."
I'm not going to send a specific patch, since it's trivial once you know
that the problem exists. Because several interfaces changed, experience
says folks are probably reluctant to apply the patch to 1.2.1. (For
example, IAsyncExecutor is now more an IExecutor here at Tensilica, even
though it uses the same name.)
Just an FYI for you folks productizing 1.2.1.
Thanks!
-Chris