[Lldb-commits] [PATCH] D128710: [lldb] [llgs] Fix multi-resume bugs with nonstop mode
Michał Górny via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 14 06:38:50 PDT 2022
mgorny added inline comments.
================
Comment at: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1818-1821
+ // 4. vCont on a running process that requests suspending a subset
+ // of running threads or resuming a subset of suspended threads.
+ // Since we do not support full nonstop mode, this is unsupported
+ // and we return an error.
----------------
labath wrote:
> I think this is going to be racy if new threads appear before we are able to stop everything. I mean that in the sense that if the client has listed all (known) threads of the process explicitly, and a new thread appears before we're able to act on it, then (I guess) the expected behavior would be to keep that thread running (but we won't do that).
>
> Do we need to support this kind of stopping right now? Maybe we could only support the `pid.-1` syntax for stopping all threads within a process? (which should also make the `ResumeActionListStopsAllThreads` logic simpler)
No, I don't think we need to support it. I'll remove it then and simplify the logic.
================
Comment at: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:3003-3010
+ // In non-stop protocol mode, the process could be running already.
+ // We do not support resuming threads independently, so just error out.
+ if (!m_continue_process->CanResume()) {
+ LLDB_LOG(log, "process cannot be resumed (state={0})",
+ m_continue_process->GetState());
+ return SendErrorResponse(0x37);
+ }
----------------
labath wrote:
> Could we factor even more of these functions into a common place? If we e.g. moved this block right before the `m_continue_process->Resume`, then we could put it, and into a helper function.
Makes sense.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D128710/new/
https://reviews.llvm.org/D128710
More information about the lldb-commits
mailing list