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 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits