1 Jul 2008 16:03
Re: [non-stop] 10/10 split user/internal threads
Daniel Jacobowitz <drow <at> false.org>
2008-07-01 14:03:11 GMT
2008-07-01 14:03:11 GMT
On Tue, Jul 01, 2008 at 02:37:44PM +0100, Pedro Alves wrote: > A Tuesday 01 July 2008 01:51:28, Daniel Jacobowitz wrote: > > On Mon, Jun 30, 2008 at 01:08:48AM +0100, Pedro Alves wrote: > > > - In non-stop mode, the current thread may exit while the > > > user has it selected. Switching current thread, and restoring > > > it with a cleanup is problematic in non-stop mode. > > > > The target interface is async, the inferior program is running - but > > GDB retains a single thread of control. So unless the inferior runs > > while the cleanup is live, there's no problem here. I suppose it > > could be trouble if you enter the expression evaluator, though? > > Sure it can run while the cleanup is live. It could already be > running when the cleanup was created. Remember that the selected > thread may be running at any time. Doesn't matter if the thread is already running. We won't go looking for events while normal cleanups are on the stack in most cases - so even if the thread exits, we won't remove it from the thread list until later. But the evaluator, and some commands, might cause us to return to w_f_i. That's all I meant. > The user loses the selected frame in thread 1, because when > the cleanup is ran, the thread is running/stepping. > Since the thread stepped into another frame, we could > claim that since the originally selected frame is still live, > it should still be selected. But, it can also be > claimed that, though luck, the thread was set running, > you lose the selected frame. This doesn't seem > like an important enough case to care about. Agree?(Continue reading)
RSS Feed