[lldb-dev] non-stop mode with lldb-mi?

Ted Woodward via lldb-dev lldb-dev at lists.llvm.org
Fri Feb 3 10:51:56 PST 2017


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.

--
Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project


> -----Original Message-----
> From: jingham at apple.com [mailto:jingham at apple.com]
> Sent: Friday, February 03, 2017 10:58 AM
> To: Greg Clayton <gclayton at apple.com>
> Cc: Ted Woodward <ted.woodward at codeaurora.org>; LLDB <lldb-
> dev at 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-
> dev at 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-
> dev at 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.stfu at gmail.com]
> >> Sent: Wednesday, February 01, 2017 11:13 PM
> >> To: Ted Woodward <ted.woodward at codeaurora.org>
> >> Cc: LLDB <lldb-dev at 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-
> dev at 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 at lists.llvm.org
> >>> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >>>
> >>
> >>
> >>
> >> --
> >> - Ilia
> >> _______________________________________________
> >> lldb-dev mailing list
> >> lldb-dev at lists.llvm.org
> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list