aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
diff options
context:
space:
mode:
authorDavid Spickett <david.spickett@linaro.org>2025-01-31 15:56:33 +0000
committerGitHub <noreply@github.com>2025-01-31 15:56:33 +0000
commit7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b (patch)
tree3f36172b709672dcfe7558bbdfd10b6c795d560f /lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
parent0d63a3d7572039095fabeadc7f1370da7dfa0d1b (diff)
downloadllvm-7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b.zip
llvm-7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b.tar.gz
llvm-7e66cf74fb4e6a103f923e34700a7b6f20ac2a9b.tar.bz2
Reland "[lldb] Implement basic support for reverse-continue" (#125242)
This reverts commit a774de807e56c1147d4630bfec3110c11d41776e. This is the same changes as last time, plus: * We load the binary into the target object so that on Windows, we can resolve the locations of the functions. * We now assert that each required breakpoint has at least 1 location, to prevent an issue like that in the future. * We are less strict about the unsupported error message, because it prints "error: windows" on Windows instead of "error: gdb-remote".
Diffstat (limited to 'lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp')
-rw-r--r--lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
index 9b2907c..ef57e7b 100644
--- a/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
+++ b/lldb/source/Plugins/Process/MacOSX-Kernel/ProcessKDP.cpp
@@ -402,9 +402,15 @@ lldb_private::DynamicLoader *ProcessKDP::GetDynamicLoader() {
Status ProcessKDP::WillResume() { return Status(); }
-Status ProcessKDP::DoResume() {
+Status ProcessKDP::DoResume(RunDirection direction) {
Status error;
Log *log = GetLog(KDPLog::Process);
+
+ if (direction == RunDirection::eRunReverse)
+ return Status::FromErrorStringWithFormatv(
+ "error: {0} does not support reverse execution of processes",
+ GetPluginName());
+
// Only start the async thread if we try to do any process control
if (!m_async_thread.IsJoinable())
StartAsyncThread();