[all-commits] [llvm/llvm-project] e81268: [lldb/Reproducers] Support multiple GDB remotes

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Tue Dec 10 11:17:05 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e81268d03e73aef4f9c7bd8ece8ad02f5b017dcf
      https://github.com/llvm/llvm-project/commit/e81268d03e73aef4f9c7bd8ece8ad02f5b017dcf
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M lldb/include/lldb/Utility/GDBRemote.h
    M lldb/include/lldb/Utility/Reproducer.h
    M lldb/source/API/SBDebugger.cpp
    M lldb/source/Commands/CommandObjectReproducer.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationHistory.h
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Utility/GDBRemote.cpp
    M lldb/source/Utility/Reproducer.cpp
    A lldb/test/Shell/Reproducer/Inputs/MultipleTargetsCapture.in
    A lldb/test/Shell/Reproducer/TestMultipleTargets.test

  Log Message:
  -----------
  [lldb/Reproducers] Support multiple GDB remotes

When running the test suite with always capture on, a handful of tests
are failing because they have multiple targets and therefore multiple
GDB remote connections. The current reproducer infrastructure is capable
of dealing with that.

This patch reworks the GDB remote provider to support multiple GDB
remote connections, similar to how the reproducers support shadowing
multiple command interpreter inputs. The provider now keeps a list of
packet recorders which deal with a single GDB remote connection. During
replay we rely on the order of creation to match the number of packets
to the GDB remote connection.

Differential revision: https://reviews.llvm.org/D71105


  Commit: 59998b7b7f12c867062a4b61579511ad6c0ca144
      https://github.com/llvm/llvm-project/commit/59998b7b7f12c867062a4b61579511ad6c0ca144
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2019-12-10 (Tue, 10 Dec 2019)

  Changed paths:
    M lldb/cmake/modules/LLDBConfig.cmake
    M lldb/include/lldb/Core/IOHandler.h
    M lldb/include/lldb/Host/Config.h.cmake
    M lldb/source/API/SBDebugger.cpp
    M lldb/source/API/SBHostOS.cpp
    M lldb/source/API/SystemInitializerFull.cpp
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/CommandObjectGUI.cpp
    M lldb/source/Commands/CommandObjectType.cpp
    M lldb/source/Core/IOHandlerCursesGUI.cpp
    M lldb/source/Core/ValueObject.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Interpreter/CommandObjectScript.cpp
    M lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp
    M lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.h
    M lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/PythonDataObjects.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.h
    M lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPythonImpl.h
    M lldb/source/Plugins/ScriptInterpreter/Python/lldb-python.h
    M lldb/unittests/Editline/EditlineTest.cpp

  Log Message:
  -----------
  [lldb/Host] Use Host/Config.h entries instead of a global define.

As suggested by Pavel in a code review:

> Can we replace this (and maybe python too, while at it) with a
> Host/Config.h entry? A global definition means that one has to
> recompile everything when these change in any way, whereas in
> practice only a handful of files need this..

Differential revision: https://reviews.llvm.org/D71280


Compare: https://github.com/llvm/llvm-project/compare/21b43885b81a...59998b7b7f12


More information about the All-commits mailing list