[all-commits] [llvm/llvm-project] f8605d: [lldb] [llgs] Fix multi-resume bugs with nonstop mode

Michał Górny via All-commits all-commits at lists.llvm.org
Fri Jul 15 04:01:55 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f8605da8758fbae16410e4ed5493a39429fd73ec
      https://github.com/llvm/llvm-project/commit/f8605da8758fbae16410e4ed5493a39429fd73ec
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2022-07-15 (Fri, 15 Jul 2022)

  Changed paths:
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
    M lldb/test/API/tools/lldb-server/TestNonStop.py
    M lldb/test/API/tools/lldb-server/vCont-threads/TestPartialResume.py

  Log Message:
  -----------
  [lldb] [llgs] Fix multi-resume bugs with nonstop mode

Improve handling of multiple successive continue packets in non-stop
mode.  More specifically:

1. Explicitly send error response (instead of crashing on assertion)
   if the user attempts to resume the same process twice.  Since we
   do not support thread-level non-stop mode, one needs to always stop
   the process explicitly before resuming another thread set.

2. Actually stop the process if "vCont;t" is delivered to a running
   process.  Similarly, we only support stopping all the running threads
   simultaneously (via -1) and return an error in any other case.

With this patch, running multiple processes simultaneously is still
unsupported.  The patch also employs a hack to avoid enabling stdio
forwarding on "vCont;t" packet.  Both of these issues are addressed
by followup patches.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.llvm.org/D128710




More information about the All-commits mailing list