Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-debug-dev] Debug Model Poll - Serialized vs. Concurrent

> 
> > 
> > If we take the case of the CDT using GDB as the backend.  The requests
> > are internally serialize i.e. pipeline to gdb.  Even if the clients ask
> > the commands in a concurrent fashion.
> 
> This is good.
> 
> > 
> > But ... a few problems, that we've see with Eclipse-3.0.x
> > 
> > case a) wrong context:
> >   Target is supended, 2 jobs are queued, one of the job, say job #1,
> > do "stepOver", by the time
> > job #2 executes, we already hit a breakpoint, so job #2 will be 
> > evaluated in the wrong context.
> > 
> > case b) Too much jobs:
> >   Target is suspended, xxx number of jobs are pending,  job #2 do 
> > "stepOver", the rest (xxx - 2) jobs
> > will all fail one by one, or see case (a) when the target changes 
> > state to be suspended.
> > Maybe it would be better to have some cancellation scheme ?
> > 
> > In brief are you planning some job control?
> > 
> 
> We should be able to provide some help here. For example, if a job is 
> retrieving variables for a stack frame, and then a step is started, the 
> job retrieving variables should be cancelled.
> 

Fantastic!

Making sure we are on the same wavelength:
 Not all debug model can run threads separately, meaning running x threads while the others remain suspended.
 For the majority of C/C++ debug model, including GDB:
  - suspending a thread is suspending __all threads__.
  - running(step) a thread is running __all threads__.
 So jobs may have to check the state of the thread they are querying not only the one where the step was issued.

Maybe a configuration on the DebugTarget that indicates the thread model so to let the
Eclipse debug framework do whatever optimization.




Back to the top