Skip to main content

[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



Back to the top