[Lldb-commits] [lldb] 1bce61e - [lldb] Remove PopPlan asserts and skip test on Arm/AArch64 Linux

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Thu Dec 14 11:18:34 PST 2023


Author: David Spickett
Date: 2023-12-14T19:17:49Z
New Revision: 1bce61e6b01b38e04260be4f422bbae59c34c766

URL: https://github.com/llvm/llvm-project/commit/1bce61e6b01b38e04260be4f422bbae59c34c766
DIFF: https://github.com/llvm/llvm-project/commit/1bce61e6b01b38e04260be4f422bbae59c34c766.diff

LOG: [lldb] Remove PopPlan asserts and skip test on Arm/AArch64 Linux

This reverts commit 481bb62e50317cf20df9493aad842790162ac3e7 and
71b4d7498ffecca5957fa0a63b1abf141d7b8441, along with the logging
and assert I had added to the test previously.

Now that I've caught it failing on Arm:
https://lab.llvm.org/buildbot/#/builders/17/builds/46598

Now I have enough to investigate, skip the test on the effected
platforms while I do that.

Added: 
    

Modified: 
    lldb/source/Target/Thread.cpp
    lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py

Removed: 
    


################################################################################
diff  --git a/lldb/source/Target/Thread.cpp b/lldb/source/Target/Thread.cpp
index 4801e3e58d9ef1..865cee97e6d878 100644
--- a/lldb/source/Target/Thread.cpp
+++ b/lldb/source/Target/Thread.cpp
@@ -717,17 +717,6 @@ void Thread::DidResume() {
 
 void Thread::DidStop() { SetState(eStateStopped); }
 
-#define CHECK_BEFORE_POP_PLAN                                                  \
-  {                                                                            \
-    uint32_t i = 0;                                                            \
-    ThreadPlanSP p;                                                            \
-    while ((p = GetPlans().GetPlanByIndex(i, false)))                          \
-      i++;                                                                     \
-    (void)i;                                                                   \
-    assert(i != 1 &&                                                           \
-           "Cannot pop plan when there is only one plan (the base plan)");     \
-  }
-
 bool Thread::ShouldStop(Event *event_ptr) {
   ThreadPlan *current_plan = GetCurrentPlan();
 
@@ -842,7 +831,6 @@ bool Thread::ShouldStop(Event *event_ptr) {
             do {
               if (should_stop)
                 current_plan->WillStop();
-              CHECK_BEFORE_POP_PLAN;
               PopPlan();
             } while ((current_plan = GetCurrentPlan()) != prev_plan_ptr);
             // Now, if the responsible plan was not "Okay to discard" then
@@ -895,7 +883,6 @@ bool Thread::ShouldStop(Event *event_ptr) {
           // If a Controlling Plan wants to stop, we let it. Otherwise, see if
           // the plan's parent wants to stop.
 
-          CHECK_BEFORE_POP_PLAN;
           PopPlan();
           if (should_stop && current_plan->IsControllingPlan() &&
               !current_plan->OkayToDiscard()) {
@@ -944,7 +931,6 @@ bool Thread::ShouldStop(Event *event_ptr) {
           // plan is complete but does not explain the stop (example: step to a
           // line with breakpoint), let us move the plan to
           // completed_plan_stack anyway
-          CHECK_BEFORE_POP_PLAN;
           PopPlan();
         } else
           DiscardPlan();

diff  --git a/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py b/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
index b8675532e6394f..dc736d07d885ef 100644
--- a/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
+++ b/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
@@ -34,6 +34,10 @@ def copy_to_main(self, src, dst):
     # The rerun tests indicate rerunning on Windows doesn't really work, so
     # this one won't either.
     @skipIfWindows
+    # On Arm and AArch64 Linux, this test attempts to pop a thread plan when
+    # we only have the base plan remaining. Skip it until we can figure out
+    # the bug this is exposing.
+    @skipIf(oslist=["linux"], archs=["arm", "aarch64"])
     def test_OneTargetOneDebugger(self):
         self.do_test(True, True)
 
@@ -50,11 +54,6 @@ def test_OneTargetTwoDebuggers(self):
         self.do_test(True, False)
 
     def do_test(self, one_target, one_debugger):
-        # Here to debug flakiness on Arm, remove later!
-        log_cmd_result = lldb.SBCommandReturnObject()
-        interp = self.dbg.GetCommandInterpreter()
-        interp.HandleCommand("log enable lldb step", log_cmd_result)
-
         # Make sure that if we have one target, and we run, then
         # change the binary and rerun, the binary (and any .o files
         # if using dwarf in .o file debugging) get removed from the


        


More information about the lldb-commits mailing list