[Lldb-commits] [PATCH] D128893: [lldb] [llgs] Fix disabling non-stop mode

Pavel Labath via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Jul 13 02:58:08 PDT 2022


labath added a comment.

In D128893#3621673 <https://reviews.llvm.org/D128893#3621673>, @mgorny wrote:

> FYI, I don't feel very strongly about this. If you really dislike adding `m_inhibit_stop_reason_processes`, I suppose we could alternatively just declare disabling non-stop as unsupported and error out.

The problem is I "really disliked" the vKill part as well. I didn't want to make a big deal out of it, as I though it was an isolated use case, but now it seems like this may be a regular occurrence.

I think things would look better if we at least grouped all of the various bits of information about a single process. So, instead of three maps, we would have a single map, whose values would contain the process pointer, and any other state data we need. That could be a flag (whether the process is being killed), or maybe a callback (specifying the action to perform when the process stops). WDYT?



================
Comment at: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:1913-1915
+  auto process_it = m_inhibit_stop_reason_processes.find(process.GetID());
+  if (process_it != m_inhibit_stop_reason_processes.end()) {
+    m_inhibit_stop_reason_processes.erase(process_it);
----------------
`if (m_inhibit_stop_reason_processes.erase(process.GetID()) != 0)`


================
Comment at: lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp:3941
     return SendErrorResponse(Status("Invalid QNonStop packet"));
   return SendOKResponse();
 }
----------------
Should we maybe send this *after* the stop dance is completed?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128893/new/

https://reviews.llvm.org/D128893



More information about the lldb-commits mailing list