rocallahan wrote:
Thanks for the feedback, folks... if you're happy with it, don't forget to give
it the thumbs-up :-)
https://github.com/llvm/llvm-project/pull/132783
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cg
@@ -744,6 +744,10 @@ let Command = "process continue" in {
Arg<"BreakpointIDRange">, Desc<"Specify a breakpoint to continue to,
temporarily "
"ignoring other breakpoints. Can be specified more than once. "
"The continue action will be done synchronously if this o
rocallahan wrote:
I suppose we need to add documentation for this but I'm not sure where...
https://github.com/llvm/llvm-project/pull/132783
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-
@@ -468,7 +468,23 @@ class CommandObjectProcessContinue : public
CommandObjectParsed {
case 'b':
m_run_to_bkpt_args.AppendArgument(option_arg);
m_any_bkpts_specified = true;
- break;
+break;
rocallahan wrote:
Thanks. Actuall
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/132783
>From 87af424e911ac5b22ee75d801390d29b9b3f367a Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:48:14 +1200
Subject: [PATCH] [lldb] Implement CLI support for reverse-continue
This i
@@ -744,6 +744,10 @@ let Command = "process continue" in {
Arg<"BreakpointIDRange">, Desc<"Specify a breakpoint to continue to,
temporarily "
"ignoring other breakpoints. Can be specified more than once. "
"The continue action will be done synchronously if this o
rocallahan wrote:
> or if we wait to wait for lldb-21 to go out the door first
I'll definitely wait for the next lldb release before updating the rr docs.
> Would be great I'd you could add a short bullet point there
Done.
https://github.com/llvm/llvm-project/pull/132783
_
https://github.com/rocallahan ready_for_review
https://github.com/llvm/llvm-project/pull/132783
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/132783
>From 9bf6c80782adc8b76e50880ea0a2eea897274c25 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:48:14 +1200
Subject: [PATCH] [lldb] Implement CLI support for reverse-continue
This i
rocallahan wrote:
> In addition, I guess we would eventually want to also document more generally
> how to use rr with lldb (how to start the rr replay, how to connect lldb to
> it, etc.) such that end users are able to discover this feature. However, I
> guess before doing so, we would like t
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/132783
>From 0d8334833e62c2e89df13bb26d2ce723878d6638 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:48:14 +1200
Subject: [PATCH] [lldb] Implement CLI support for reverse-continue
This i
rocallahan wrote:
@jimingham @labath Here's a PR adding `process continue --reverse` and
`--forward`. I guess it needs to add documentation somewhere under `docs`? I'm
not sure where.
https://github.com/llvm/llvm-project/pull/132783
___
lldb-commits
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/132783
>From 0067c5cb40e676652d044044e37b85c25bfc3c20 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:48:14 +1200
Subject: [PATCH] [lldb] Implement CLI support for reverse-continue
This i
https://github.com/rocallahan edited
https://github.com/llvm/llvm-project/pull/132783
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan created
https://github.com/llvm/llvm-project/pull/132783
This introduces the options "-F/--forward" and
"-R/--reverse" to `process continue`.
These only work if you're running with a gdbserver backend that supports
reverse execution, such as rr. For testing we rel
rocallahan wrote:
@labath can someone merge this for me? Thanks!
https://github.com/llvm/llvm-project/pull/132122
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
rocallahan wrote:
> Btw, the x86_64 macOS bots are still failing:
> https://green.lab.llvm.org/job/llvm.org/view/LLDB/job/lldb-cmake/10698/execution/node/102/log/?consoleFull
Where is this reported? I did not see it in any of the commit annotations in
Github.
> I think it'd make sense for the
rocallahan wrote:
Maybe disabling tests for macOS < 15 would be OK even in the long term? There
isn't any looming plan to actually use this code on macOS < 15. The main reason
to run these tests on non-Linux is so to help developers catch it early if they
break these tests. I guess most develo
rocallahan wrote:
@jasonmolenda Pavel Labath thought you might have some insight here. Thanks.
https://github.com/llvm/llvm-project/pull/128156
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/ll
rocallahan wrote:
These are the test log packets between the reverse-exec proxy to the
debugserver for the forward singlestep operation:
```
2025-03-17 15:49:10,842 INFO Sending packet vCont;s:4870aa
2025-03-17 15:49:10,843 INFO Received reply
T05thread:4870aa;threads:4870aa;thread-pcs:
rocallahan wrote:
On Linux ARM64 both gdb and lldb seem to adjust the hardware behavior so that
single-stepping an instruction that fires a watchpoint leaves the PC pointing
to the next instruction.
Maybe this is not true on Mac? I can't test that myself.
https://github.com/llvm/llvm-project/
rocallahan wrote:
My reverse-execution proxy code implements watchpoints during reverse execution
more or less by reversing the x86 behavior: if we execute a sequence of
instructions and instruction #N in the sequence modifies a watched memory
location, then when reverse-executing, we stop whe
rocallahan wrote:
The logs show the problem here:
```
AssertionError: Ran command:
"thread list"
Got output:
Process 79916 stopped
* thread #1: tid = 0x4870aa, 0x000100e0ff94 a.out`trigger_watchpoint at
main.c:7:60, stop reason = instruction step into
Expecting sub string: "stopped" (was f
rocallahan wrote:
@adrian-prantl can we have that help please?
Also, is that link supposed to be accessible to the public? Because it's 404
for me.
https://github.com/llvm/llvm-project/pull/123945
___
lldb-commits mailing list
lldb-commits@lists.llvm.
rocallahan wrote:
And thanks!
https://github.com/llvm/llvm-project/pull/124733
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
rocallahan wrote:
It sounds fine. rr HEAD uses the Gdb flavour for GDB and the old-LLDB flavor
for LLDB. After a decent amount of time has passed I will update to the new
regime.
https://github.com/llvm/llvm-project/pull/124733
___
lldb-commits maili
rocallahan wrote:
@DavidSpickett can you apply that change to your branch since this is your PR
now?
@labath does this pass on x86-via-Rosetta Mac? Should we retry merging with
this change?
Thanks!
https://github.com/llvm/llvm-project/pull/123945
_
rocallahan wrote:
@DavidSpickett this is your branch now ... can you add @skipIfRemote to the
tests?
https://github.com/llvm/llvm-project/pull/123945
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/list
rocallahan wrote:
> I also noticed that if you don't save memory at all, the breakpoint tests
> pass. Which is surprising, but ok given that the test doesn't check any
> memory values, and watchpoint tests _do_ fail if you do not save memory.
Yeah, this is why I think it was a good idea to add
rocallahan wrote:
> this seems like I'm being overly verbose and maybe a bit insulting, that's
> not my intent
No, this is pretty clear and helpful, thanks! I've updated the PR description.
https://github.com/llvm/llvm-project/pull/112079
___
lldb-co
https://github.com/rocallahan edited
https://github.com/llvm/llvm-project/pull/112079
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
rocallahan wrote:
> Hmm.. could you update the patch description with the text you want the final
> commit to contain. I see that at least the API names have changed during the
> review, but maybe there are other things (?)
The API names in the commit messages are correct.
But I noticed that
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 1d587f12fccc8baebb3d502389c6e7e479fab9f7 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/3] [lldb] Implement basic support for reverse-continue
rocallahan wrote:
Yes, I need someone to merge it. Thanks!
https://github.com/llvm/llvm-project/pull/112079
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -0,0 +1,149 @@
+import lldb
+import time
+import unittest
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+from lldbsuite.test.gdbclientutils import *
+from lldbsuite.test.lldbreverse import ReverseTestBase
+from lldbsuite.test import lldbutil
+
@@ -0,0 +1,32 @@
+import lldb
+import unittest
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+from lldbsuite.test import lldbutil
+
+
+class TestReverseContinueNotSupported(TestBase):
+NO_DEBUG_INFO_TESTCASE = True
+
+def test_reverse_cont
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 4b0279adaa055182d93f6d27d04af23fc03492c9 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/3] [lldb] Implement basic support for reverse-continue
rocallahan wrote:
I assumed that watchpoints during reverse execution would not work without
further changes, but when I actually tried it, at least the simplest cases do
seem to work as-is --- once I fixed the `lldbreverse` code to report watchpoint
stops properly. So I've merged those fixes
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 4b0279adaa055182d93f6d27d04af23fc03492c9 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/3] [lldb] Implement basic support for reverse-continue
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 4b0279adaa055182d93f6d27d04af23fc03492c9 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/3] [lldb] Implement basic support for reverse-continue
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From d024e9fb724fde3dd5d810dca4bc7ab129c48658 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/2] [lldb] Implement basic support for reverse-continue
rocallahan wrote:
> Looks like you have to change some formatting somewhere,
Fixed.
https://github.com/llvm/llvm-project/pull/112079
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From d024e9fb724fde3dd5d810dca4bc7ab129c48658 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/2] [lldb] Implement basic support for reverse-continue
rocallahan wrote:
> I still feel like it would be better to have a way to ask up front if the
> process supports reverse continue and shortcut attempts to do so as early as
> possible (e.g. if you ask a command to reverse continue and the process
> doesn't support it, we should return with an
rocallahan wrote:
> I'm not so familiar with the parts of the testsuite this builds on, so it
> would be great if someone more familiar with that part would give that a look.
I think Pavel has already done this.
https://github.com/llvm/llvm-project/pull/112079
_
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From d024e9fb724fde3dd5d810dca4bc7ab129c48658 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH 1/2] [lldb] Implement basic support for reverse-continue
rocallahan wrote:
> Better to wait until you can say "lldb can now be used as a client for RR" ?
Technically that is already true --- with stock LLDB and latest rr you can
debug an rr replay, which is useful. You just don't get the reverse-execution
superpower.
https://github.com/llvm/llvm-pr
rocallahan wrote:
Pavel tested a recent version of this PR on Mac and it worked. I've rebased
this on top of the refactoring work in PR #120817. CI looks green. I think this
is ready to finish reviewing.
https://github.com/llvm/llvm-project/pull/112079
_
rocallahan wrote:
Thanks!!
https://github.com/llvm/llvm-project/pull/120817
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From daf6c946e52c7c5c778ab6a397c2de95bee56eb8 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
rocallahan wrote:
Great, thanks! Hopefully someone can merge this?
https://github.com/llvm/llvm-project/pull/120817
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan edited
https://github.com/llvm/llvm-project/pull/120817
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -582,31 +531,92 @@ bool ThreadList::WillResume() {
// There are two special kinds of thread that have priority for "StopOthers":
// a "ShouldRunBeforePublicStop thread, or the currently selected thread. If
// we find one satisfying that critereon, put it here.
- Thre
https://github.com/rocallahan edited
https://github.com/llvm/llvm-project/pull/120817
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
@@ -582,31 +531,92 @@ bool ThreadList::WillResume() {
// There are two special kinds of thread that have priority for "StopOthers":
// a "ShouldRunBeforePublicStop thread, or the currently selected thread. If
// we find one satisfying that critereon, put it here.
- Thre
@@ -582,31 +531,92 @@ bool ThreadList::WillResume() {
// There are two special kinds of thread that have priority for "StopOthers":
// a "ShouldRunBeforePublicStop thread, or the currently selected thread. If
// we find one satisfying that critereon, put it here.
- Thre
@@ -582,31 +531,92 @@ bool ThreadList::WillResume() {
// There are two special kinds of thread that have priority for "StopOthers":
// a "ShouldRunBeforePublicStop thread, or the currently selected thread. If
// we find one satisfying that critereon, put it here.
- Thre
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/120817
>From a3968690f394f15083839ea91e9908d6d7d1e886 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Tue, 17 Dec 2024 23:40:34 +
Subject: [PATCH 1/8] [lldb] Move thread-notification setup to happen later
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/120817
>From b021a56268c74010eae017d2d1169ab8b79978b3 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Tue, 17 Dec 2024 23:40:34 +
Subject: [PATCH 1/7] [lldb] Move thread-notification setup to happen later
rocallahan wrote:
I have created #120817 with those refactoring commits.
https://github.com/llvm/llvm-project/pull/112079
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
https://github.com/rocallahan created
https://github.com/llvm/llvm-project/pull/120817
These changes are designed to not change any behavior, but to make it easy to
add code to choose the direction of execution after we've identified which
thread(s) to run but before we add any `ThreadPlanStep
rocallahan wrote:
> Could you create a separate PR (or two, but probably not eight) with the
> refactoring changes, and we can rebase this PR on top of that when they land?
Ok. I assume "Require pull request reviews before merging" is enabled so you
can't push a group of commits manually.
ht
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From b021a56268c74010eae017d2d1169ab8b79978b3 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Tue, 17 Dec 2024 23:40:34 +
Subject: [PATCH 1/9] [lldb] Move thread-notification setup to happen later
rocallahan wrote:
> (The precommit test failures look real though)
Indeed. The problem was in `ThreadList::WillResume()`, which is a tricky
function that my changes made even trickier. The basic problem is that we make
execution direction depend on the state of the thread plans and which threa
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 0c9f80e8d0e925cc75e6ef2696955e2a60782689 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Tue, 17 Dec 2024 23:40:34 +
Subject: [PATCH 1/9] Move thread-notification setup to happen later and ch
@@ -0,0 +1,185 @@
+import logging
+import os
+import os.path
+import random
+
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.gdbclientutils import *
+import lldbgdbserverutils
+from lldbsuite.support import seven
+
+
+class GDBProxyTestBase(TestBase):
+
@@ -199,6 +199,20 @@ uint64_t
GDBRemoteCommunicationClient::GetRemoteMaxPacketSize() {
return m_max_packet_size;
}
+bool GDBRemoteCommunicationClient::GetReverseContinueSupported() {
+ if (m_supports_reverse_continue == eLazyBoolCalculate) {
+GetRemoteQSupported();
+
@@ -0,0 +1,151 @@
+import lldb
+import time
+import unittest
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.decorators import *
+from lldbsuite.test.gdbclientutils import *
+from lldbsuite.test.lldbreverse import ReverseTestBase
+from lldbsuite.test import lldbutil
+
@@ -608,19 +594,47 @@ bool ThreadList::WillResume() {
}
bool need_to_resume = true;
-
if (run_me_only_list.GetSize(false) == 0) {
+*direction = m_process.GetBaseDirection();
+// We've determined the direction so now we can determine which
+// threads need to
@@ -583,6 +583,14 @@ SBError SBProcess::Continue() {
return sb_error;
}
+SBError SBProcess::ContinueInDirection(RunDirection direction) {
+ ProcessSP process_sp(GetSP());
+ if (process_sp) {
+process_sp->SetBaseDirection(direction);
+ }
rocallahan wro
@@ -0,0 +1,185 @@
+import logging
+import os
+import os.path
+import random
+
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.gdbclientutils import *
+import lldbgdbserverutils
+from lldbsuite.support import seven
+
+
+class GDBProxyTestBase(TestBase):
+
@@ -0,0 +1,185 @@
+import logging
+import os
+import os.path
+import random
+
+import lldb
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test.gdbclientutils import *
+import lldbgdbserverutils
+from lldbsuite.support import seven
+
+
+class GDBProxyTestBase(TestBase):
+
@@ -115,14 +115,18 @@ class ThreadList : public ThreadCollection {
/// If a thread can "resume" without having to resume the target, it
/// will return false for WillResume, and then the process will not be
/// restarted.
+ /// Sets *direction to the run direction of the
@@ -1104,9 +1104,15 @@ class Process : public
std::enable_shared_from_this,
/// \see Thread:Resume()
/// \see Thread:Step()
/// \see Thread:Suspend()
- virtual Status DoResume() {
-return Status::FromErrorStringWithFormatv(
-"error: {0} does not support resu
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 0c9f80e8d0e925cc75e6ef2696955e2a60782689 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Tue, 17 Dec 2024 23:40:34 +
Subject: [PATCH 1/9] Move thread-notification setup to happen later and ch
@@ -608,19 +594,49 @@ bool ThreadList::WillResume() {
}
bool need_to_resume = true;
+ Log *log(GetLog(LLDBLog::Process | LLDBLog::Step));
if (run_me_only_list.GetSize(false) == 0) {
+*direction = m_process.GetBaseDirection();
+// We've determined the directio
@@ -617,25 +617,26 @@ void Thread::WillStop() {
current_plan->WillStop();
}
-void Thread::SetupForResume() {
+bool Thread::StepOverBreakpointIfNeeded(RunDirection direction) {
rocallahan wrote:
Renamed it to `SetupForStepOverBreakpoint()`, hope that's good.
@@ -3239,6 +3241,14 @@ Status Process::ConnectRemote(llvm::StringRef
remote_url) {
return error;
}
+void Process::SetRunDirection(RunDirection direction) {
+ if (m_base_direction == direction) {
+return;
+ }
+ m_thread_list.DiscardThreadPlans();
roca
@@ -182,10 +182,16 @@ void ScriptedProcess::DidResume() {
m_pid = GetInterface().GetProcessID();
}
-Status ScriptedProcess::DoResume() {
+Status ScriptedProcess::DoResume(RunDirection direction) {
LLDB_LOGF(GetLog(LLDBLog::Process), "ScriptedProcess::%s resuming process",
@@ -2318,6 +2376,8 @@ StateType
ProcessGDBRemote::SetThreadStopInfo(StringExtractor &stop_packet) {
description = std::string(ostr.GetString());
} else if (key.compare("swbreak") == 0 || key.compare("hwbreak") == 0) {
reason = "breakpoint";
+ } else
@@ -1363,9 +1375,51 @@ Status ProcessGDBRemote::DoResume() {
}
}
+if (direction == RunDirection::eRunReverse && continue_packet_error) {
+ if (num_continue_C_tids > 0 || num_continue_S_tids > 0) {
+LLDB_LOGF(log,
+ "ProcessGDBRemote:
@@ -1363,9 +1375,51 @@ Status ProcessGDBRemote::DoResume() {
}
}
+if (direction == RunDirection::eRunReverse && continue_packet_error) {
rocallahan wrote:
Removed `continue_packet_error` from here.
https://github.com/llvm/llvm-project/pull/1120
@@ -1265,14 +1280,11 @@ Status ProcessGDBRemote::DoResume() {
} else
continue_packet_error = true;
-if (continue_packet_error) {
+if (direction == RunDirection::eRunForward && continue_packet_error) {
// Either no vCont support, or we tried to use part
@@ -652,7 +652,7 @@ def assert_match(self, asserter, accumulated_output,
context):
if not accumulated_output:
raise Exception("accumulated_output cannot be none")
if not context:
-raise Exception("context cannot be none")
+ra
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From f8ec2662dce500071db697d8fa0cc4f5dce11e70 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
@@ -2674,6 +2680,9 @@ void PruneThreadPlans();
const AddressRange &range, size_t alignment,
Status &error);
+ lldb::RunDirection GetBaseDirection() const { return m_base_direction; }
rocallahan wrote:
A
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From d1b5c17974ec5c987ea1cadcad0517813308ccf7 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 9fb782a15f2fc23f1509dd110e139d256482de63 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
@@ -3265,18 +3275,25 @@ Status Process::PrivateResume() {
// (suspended/running/stepping). Threads should also check their resume
// signal in lldb::Thread::GetResumeSignal() to see if they are supposed to
// start back up with a signal.
-if (m_thread_list.WillR
@@ -1363,9 +1375,51 @@ Status ProcessGDBRemote::DoResume() {
}
}
+if (direction == RunDirection::eRunReverse && continue_packet_error) {
+ if (num_continue_C_tids > 0 || num_continue_S_tids > 0) {
+LLDB_LOGF(log,
+ "ProcessGDBRemote:
@@ -236,11 +236,18 @@ ProcessWindows::DoAttachToProcessWithID(lldb::pid_t pid,
return error;
}
-Status ProcessWindows::DoResume() {
+Status ProcessWindows::DoResume(RunDirection direction) {
Log *log = GetLog(WindowsLog::Process);
llvm::sys::ScopedLock lock(m_mutex);
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From c0904fed59e42d957e2b40698c4343fdb5582b21 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 91d40f5e331b97a202208c221ef6b11784dc8ca2 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From 6d8f3ccf7b30334853e07e141f41545d68870bb8 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Fri, 19 Jul 2024 22:46:42 +1200
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
rocallahan wrote:
@jimingham I've implemented my proposal above. I added a test that
`SBProcess::Continue()` preserves the reverse direction after stopping on a
breakpoint. I also beefed up the conditional-breakpoint test to make a function
call in the condition, which exercises the step-over-
https://github.com/rocallahan updated
https://github.com/llvm/llvm-project/pull/112079
>From c6d62d1b8612ddf052d5073a2845b1a44ae57a83 Mon Sep 17 00:00:00 2001
From: Robert O'Callahan
Date: Thu, 21 Nov 2024 22:42:39 +1300
Subject: [PATCH] [lldb] Implement basic support for reverse-continue
This
rocallahan wrote:
In any case I am OOO and mostly offline until Nov 26.
Rob
https://github.com/llvm/llvm-project/pull/115197
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
rocallahan wrote:
Ok, tell me what you think of this proposal:
1) Each thread plan has a virtual `GetDirection()` method returning
`RunDirection`. Existing plans other than `ThreadBasePlan` return `eRunForward`.
2) There is a per-process `base direction` flag.
`ThreadBasePlan::GetDirection()`
rocallahan wrote:
> I worry that in a situation like this where there's a pending task people
> will go the wrong way and lose important state because they forgot that
> "continue" doesn't mean "continue what I was doing" - which is what it
> currently means in lldb
I don't know of any other
rocallahan wrote:
> My notion was that when you push a plan that has an intention to run in a
> direction, if the plan above it on the stack was going in the opposite
> direction, it has to be popped.
That's in the current code in this PR but I agree that was the wrong direction.
My experimen
1 - 100 of 178 matches
Mail list logo