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

via lldb-commits lldb-commits at lists.llvm.org
Tue Dec 10 17:20:15 PST 2024


================
@@ -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::DoResumeReverse: Signals not supported");
+        return Status::FromErrorString(
+            "can't deliver signals while running in reverse");
+      }
+
+      if (num_continue_s_tids > 0) {
+        if (num_continue_s_tids > 1) {
+          LLDB_LOGF(
+              log,
+              "ProcessGDBRemote::DoResumeReverse: can't step multiple threads");
+          return Status::FromErrorString(
+              "can't step multiple threads while reverse-stepping");
+        }
+
+        if (!m_gdb_comm.GetReverseStepSupported()) {
----------------
jimingham wrote:

I think this should be checked first.  It's kind of goofy if you try to do a "reverse step with signal" and get told that "can't deliver signals while running in reverse", so then you say "okay just do the reverse step" and get told that the target doesn't in fact support reverse continue at all...

https://github.com/llvm/llvm-project/pull/112079


More information about the lldb-commits mailing list