I think the remote stub only sends extra stop replies in response to a vStopped packet. Here is a stop for 2 threads hitting a common breakpoint:
< 51> send packet: $vCont;c:10b6;c:10f8;c:00b3;c:00b2;c:00b1;c:00b0#e0 < 1> read packet: + < 6> read packet: $OK#9a < 1> send packet: + < 58> read packet: %Stop:T052a:c8f4f5e0;1e:90de101b;1d:48dd101b;thread:af;#1d < 1> send packet: + < 12> send packet: $vStopped#55 < 1> read packet: + < 53> read packet: $T052a:c8f4f5e0;1e:309c101b;1d:e89a101b;thread:b0;#d8 < 1> send packet: + < 12> send packet: $vStopped#55 < 1> read packet: + < 6> read packet: $OK#9a So we won't get any spurious stops in the middle of processing. "Experimental feature, not tested" is noted - I'll mention that in my meeting today. -- Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project > -----Original Message----- > From: jing...@apple.com [mailto:jing...@apple.com] > Sent: Friday, February 03, 2017 1:22 PM > To: Ted Woodward <ted.woodw...@codeaurora.org> > Cc: Greg Clayton <gclay...@apple.com>; LLDB <lldb-dev@lists.llvm.org> > Subject: Re: [lldb-dev] non-stop mode with lldb-mi? > > > > On Feb 3, 2017, at 10:51 AM, Ted Woodward > <ted.woodw...@codeaurora.org> wrote: > > > > I'm working on plumbing the existing non-stop mode switch (target.non- > stop-mode) to lldb-mi, to give Eclipse access to non-stop mode. > > > > The remote OS is very thread-heavy, and the remote stub doesn't limit the > debugger to the current process - because there isn't one, from the stub's > point of view. Just a collection of threads. In all-stop mode, if a 2nd thread > hits a breakpoint, it will send back a 2nd stop reply, which confuses lldb > (rightly so). In non-stop mode, it handles things correctly. So we'll just > have > to live with the possible missed breakpoint issue. > > We tried to keep the possibility of a non-stop mode in mind when designing > lldb, but I know there are places in lldb at present that assume that if you > get > a "stop" event you won't get another stop event till lldb issues a run. We > try > not to fall over completely if we get events we don't expect, but we're more > likely to just discard them than do the right thing. There also don't appear > to > be any tests running programs in non-stop mode and exercising their > behavior, so any extent to which it works will be accidental and unstable. > > Seems like this is an experimental feature at best, and should be marked as > such. > > Jim > > > > > -- > > Qualcomm Innovation Center, Inc. > > The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, > > a Linux Foundation Collaborative Project > > > > > >> -----Original Message----- > >> From: jing...@apple.com [mailto:jing...@apple.com] > >> Sent: Friday, February 03, 2017 10:58 AM > >> To: Greg Clayton <gclay...@apple.com> > >> Cc: Ted Woodward <ted.woodw...@codeaurora.org>; LLDB <lldb- > >> d...@lists.llvm.org> > >> Subject: Re: [lldb-dev] non-stop mode with lldb-mi? > >> > >> > >>> On Feb 3, 2017, at 8:45 AM, Greg Clayton via lldb-dev <lldb- > >> d...@lists.llvm.org> wrote: > >>> > >>> Non-stop mode is a huge change to the core of LLDB isn’t it. I think > >>> you > >> might think this is easier than it actually is to enable in LLDB? > >>> > >>> Is non-stop mode where you can leave some threads running while > >>> others > >> are stopped? The biggest issue with this is to do it right we need to > >> be able to emulate instructions so that if 3 threads hit breakpoints, > >> we would need to emulate the instruction that used to be at the > >> breakpoint in LLDB since we can’t remove the breakpoint (unless you > >> stop the other threads which defeats the purpose of non-stop mode) > >> without the other 2 threads possibly missing the breakpoint while you > >> disable breakpoint, single step, enable breakpoint. > >> > >> That is just one of the many things that will have to be changed to > >> support non-stop mode. For now, non-stop mode is only likely to work > >> reliably if the threads you are allowing to run never stop - hit > >> breakpoints, crash or whatever - so worrying about missing breakpoints is > a second order problem. > >> > >> Anyway, even as it is it has some utility - presumably you're using > >> it because you have some threads in your program that can't stop, so > >> you're not likely to want them to hit breakpoints anyway... But the > >> current help text for the non-stop setting should probably include some > appropriate caveats. > >> > >> Jim > >> > >> > >>> > >>> Greg > >>> > >>>> On Feb 3, 2017, at 7:54 AM, Ted Woodward via lldb-dev <lldb- > >> d...@lists.llvm.org> wrote: > >>>> > >>>> That turns on and off async, but not non-stop. > >>>> > >>>> I’m working on adding support for –gdb-set and –gdb-show non-stop, > >> and will post my changes on phabricator when I’m done. > >>>> > >>>> -- > >>>> Qualcomm Innovation Center, Inc. > >>>> The Qualcomm Innovation Center, Inc. is a member of Code Aurora > >> Forum, a Linux Foundation Collaborative Project > >>>> > >>>> From: Ilia K [mailto:ki.s...@gmail.com] > >>>> Sent: Wednesday, February 01, 2017 11:13 PM > >>>> To: Ted Woodward <ted.woodw...@codeaurora.org> > >>>> Cc: LLDB <lldb-dev@lists.llvm.org> > >>>> Subject: Re: [lldb-dev] non-stop mode with lldb-mi? > >>>> > >>>> Please check `-gdb-set target.async` option. Probably that's what > >>>> you > >> need. > >>>> > >>>> On Thu, Feb 2, 2017 at 1:44 AM, Ted Woodward via lldb-dev <lldb- > >> d...@lists.llvm.org> wrote: > >>>>> Does lldb-mi support non-stop mode? > >>>>> > >>>>> If so, is there a way to set it besides “settings set > >>>>> target.non-stop-mode > >> true”? > >>>>> > >>>>> -- > >>>>> Qualcomm Innovation Center, Inc. > >>>>> The Qualcomm Innovation Center, Inc. is a member of Code Aurora > >> Forum, a Linux Foundation Collaborative Project > >>>>> > >>>>> > >>>>> _______________________________________________ > >>>>> lldb-dev mailing list > >>>>> lldb-dev@lists.llvm.org > >>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> - Ilia > >>>> _______________________________________________ > >>>> lldb-dev mailing list > >>>> lldb-dev@lists.llvm.org > >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > >>> > >>> _______________________________________________ > >>> lldb-dev mailing list > >>> lldb-dev@lists.llvm.org > >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > > > > _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev