[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-04-06 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-04-05 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-04-05 Thread Robert O'Callahan via lldb-commits
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-

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-31 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-31 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via lldb-commits
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 _

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [llvm] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-30 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-24 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-24 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-24 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement CLI support for reverse-continue (PR #132783)

2025-03-24 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Ignore registers that the debugserver fails to read (PR #132122)

2025-03-22 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-19 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-18 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-18 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-18 Thread Robert O'Callahan via lldb-commits
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:

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-18 Thread Robert O'Callahan via lldb-commits
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/

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reapply "[lldb] Implement basic support for reverse-continue (#125242)" (again) (PR #128156)

2025-03-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reland "[lldb] Implement basic support for reverse-continue" (#123906)" (PR #123945)

2025-02-07 Thread Robert O'Callahan via lldb-commits
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.

[Lldb-commits] [lldb] [lldb] Add support for gdb-style 'x' packet (PR #124733)

2025-01-30 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Add support for gdb-style 'x' packet (PR #124733)

2025-01-30 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Reland "[lldb] Implement basic support for reverse-continue" (#123906)" (PR #123945)

2025-01-29 Thread Robert O'Callahan via lldb-commits
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 _

[Lldb-commits] [lldb] Reland "[lldb] Implement basic support for reverse-continue" (#123906)" (PR #123945)

2025-01-22 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Reland "[lldb] Implement basic support for reverse-continue" (#123906)" (PR #123945)

2025-01-22 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-21 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-21 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-21 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-21 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-20 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-20 Thread Robert O'Callahan via 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 +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-20 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-20 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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 _

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-16 Thread Robert O'Callahan via lldb-commits
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 _

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-16 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2025-01-16 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-15 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2025-01-13 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2024-12-20 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-20 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] Refactor `ThreadList::WillResume()` to prepare to support reverse execution (PR #120817)

2024-12-20 Thread Robert O'Callahan via 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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-20 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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): +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -199,6 +199,20 @@ uint64_t GDBRemoteCommunicationClient::GetRemoteMaxPacketSize() { return m_max_packet_size; } +bool GDBRemoteCommunicationClient::GetReverseContinueSupported() { + if (m_supports_reverse_continue == eLazyBoolCalculate) { +GetRemoteQSupported(); +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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 +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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): +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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): +

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-17 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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.

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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",

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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:

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-14 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-13 Thread Robert O'Callahan via lldb-commits
@@ -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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-13 Thread Robert O'Callahan via lldb-commits
@@ -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:

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-12-13 Thread Robert O'Callahan via lldb-commits
@@ -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);

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-26 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-26 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-26 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-21 Thread Robert O'Callahan via lldb-commits
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-

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-21 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Unify/improve MainLoop signal handling (PR #115197)

2024-11-14 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-14 Thread Robert O'Callahan via 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()`

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-12 Thread Robert O'Callahan via lldb-commits
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

[Lldb-commits] [lldb] [lldb] Implement basic support for reverse-continue (PR #112079)

2024-11-11 Thread Robert O'Callahan via lldb-commits
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   2   >