[all-commits] [llvm/llvm-project] b7b9cc: [lldb] Implement basic support for reverse-continu...

rocallahan via All-commits all-commits at lists.llvm.org
Tue Jan 21 23:37:39 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b7b9ccf44988edf49886743ae5c3cf4184db211f
      https://github.com/llvm/llvm-project/commit/b7b9ccf44988edf49886743ae5c3cf4184db211f
  Author: Robert O'Callahan <rocallahan at google.com>
  Date:   2025-01-22 (Wed, 22 Jan 2025)

  Changed paths:
    M lldb/include/lldb/API/SBProcess.h
    M lldb/include/lldb/Target/Process.h
    M lldb/include/lldb/Target/StopInfo.h
    M lldb/include/lldb/Target/Thread.h
    M lldb/include/lldb/Target/ThreadList.h
    M lldb/include/lldb/Target/ThreadPlan.h
    M lldb/include/lldb/Target/ThreadPlanBase.h
    M lldb/include/lldb/lldb-enumerations.h
    M lldb/packages/Python/lldbsuite/test/gdbclientutils.py
    A lldb/packages/Python/lldbsuite/test/lldbgdbproxy.py
    A lldb/packages/Python/lldbsuite/test/lldbreverse.py
    M lldb/packages/Python/lldbsuite/test/lldbtest.py
    M lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py
    M lldb/source/API/SBProcess.cpp
    M lldb/source/API/SBThread.cpp
    M lldb/source/Interpreter/CommandInterpreter.cpp
    M lldb/source/Plugins/Process/Linux/NativeThreadLinux.cpp
    M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
    M lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.h
    M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
    M lldb/source/Plugins/Process/Windows/Common/ProcessWindows.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
    M lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
    M lldb/source/Plugins/Process/scripted/ScriptedProcess.h
    M lldb/source/Target/Process.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/source/Target/Thread.cpp
    M lldb/source/Target/ThreadList.cpp
    M lldb/source/Target/ThreadPlanBase.cpp
    A lldb/test/API/functionalities/reverse-execution/Makefile
    A lldb/test/API/functionalities/reverse-execution/TestReverseContinueBreakpoints.py
    A lldb/test/API/functionalities/reverse-execution/TestReverseContinueNotSupported.py
    A lldb/test/API/functionalities/reverse-execution/TestReverseContinueWatchpoints.py
    A lldb/test/API/functionalities/reverse-execution/main.c
    M lldb/tools/lldb-dap/JSONUtils.cpp
    M lldb/tools/lldb-dap/LLDBUtils.cpp

  Log Message:
  -----------
  [lldb] Implement basic support for reverse-continue (#112079)

This commit adds support for a
`SBProcess::ContinueInDirection()` API. A user-accessible command for
this will follow in a later commit.

This feature depends on a gdbserver implementation (e.g. `rr`) providing
support for the `bc` and `bs` packets. `lldb-server` does not support
those packets, and there is no plan to change that. For testing
purposes, this commit adds a Python implementation of *very limited*
record-and-reverse-execute functionality, implemented as a proxy between
lldb and lldb-server in `lldbreverse.py`. This should not (and in
practice cannot) be used for anything except testing.

The tests here are quite minimal but we test that simple breakpoints and
watchpoints work as expected during reverse execution, and that
conditional breakpoints and watchpoints work when the condition calls a
function that must be executed in the forward direction.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list