<div dir="ltr">Hi,<div><br></div><div><br></div><div><br></div><div><br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, 29 Mar 2018 at 10:09, Ramana via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div><div>Hi,<br><br></div>It appears that the lldb-server, as of v5.0, did not implement the GDB RSPs non-stop mode (<a href="https://sourceware.org/gdb/onlinedocs/gdb/Remote-Non_002dStop.html#Remote-Non_002dStop" target="_blank">https://sourceware.org/gdb/onlinedocs/gdb/Remote-Non_002dStop.html#Remote-Non_002dStop</a>). Am I wrong?<br><br></div></div></div></div></div></div></blockquote><div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:small;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration-style:initial;text-decoration-color:initial">The non-stop project was started a couple of years ago, but never really completed. There is some code left in the client which gives off the impression it is supported, but in reality, that's probably not the case. Furthermore, given the lack of test coverage, there's no way to tell if even the bits of functionality that were working in the past, are still operational. As for lldb-server, it does not support non-stop mode at all (and has never supported it).</div><br class="gmail-Apple-interchange-newline"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div>If the support is actually not there, what needs to be changed to enable the same in lldb-server?<br></div></div></div></div></div></blockquote><div>Adding non-stop support to lldb-server should be relatively straight-forward actually. For linux, the ptrace api natively operates in "non-stop" mode, and we have to do extra work to the simulate the all-stop mode. There are some details that we would need to figure out, but conceptually, all you would need to do is rip out the all-stop simulation code for this mode (NativeProcessLinux::StopRunningThreads, NativeProcessLinux::SignalIfAllThreadsStopped), etc.). If you're interested in taking this on, we can discuss it in more detail...</div><div><br></div><div>In my mind, the tricky part will be the client, as it contains a lot more code, and a lot of that code assumes that the when Process.GetState()==Stopped, that all threads are stopped as well. Jim Ingham should have the best idea of the kind of work that needs to be done there.</div><div><br></div><div>Hope this makes the situation a bit more clear.</div><div><br></div><div>cheers,</div><div>pl</div><div><br></div><div><br></div><div> </div></div></div>