[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-debug-dev] CRegister deadlock
|
Hi Mikhail,
I am implementing CDT debugger and I stumbled on a deadlock.
The deadlock happens when I open the register view and step few times.
The deadlock happens when the GUI update thread calls
synchronized CRegister.InternalVariable.getValue()
that calls my debugger implementation of
ICDIRegister.getValue(ICDIStackFrame context).
At that very moment my target fires
ResumeEvent and during that event
synchronized CRegister.InternalVariable.setChanged
tries to enter the method but cannot. The other thread has already
acquired the lock on the CRegister.InternalVariable object.
If I remove one of the two synchronized in front of one of the methods I
don't have the deadlock anymore. Of course that is not a fix.
Can you confirm that this is a valid use case and the problem should be
fixed on the CDT side? I suppose there is no restriction on the debugger
implementation not to fire events during any API calls.
If so, I'll file a bug.
Regards
Dobrin