aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/scripted/ScriptedProcess.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/scripted/ScriptedProcess.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/scripted/ScriptedProcess.cpp')
-rw-r--r--lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
index d2111ce..3360bd9 100644
--- a/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
+++ b/lldb/source/Plugins/Process/scripted/ScriptedProcess.cpp
@@ -182,10 +182,15 @@ void ScriptedProcess::DidResume() {
m_pid = GetInterface().GetProcessID();
}
-Status ScriptedProcess::DoResume() {
+Status ScriptedProcess::DoResume(RunDirection direction) {
LLDB_LOGF(GetLog(LLDBLog::Process), "ScriptedProcess::%s resuming process", __FUNCTION__);
- return GetInterface().Resume();
+ if (direction == RunDirection::eRunForward)
+ return GetInterface().Resume();
+ // FIXME: Pipe reverse continue through Scripted Processes
+ return Status::FromErrorStringWithFormatv(
+ "error: {0} does not support reverse execution of processes",
+ GetPluginName());
}
Status ScriptedProcess::DoAttach(const ProcessAttachInfo &attach_info) {