[Lldb-commits] [lldb] a756dc4 - [lldb][test] Try a workaround for module cache test on Arm/AArch64 Linux

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 20 00:46:26 PST 2023


Author: David Spickett
Date: 2023-12-20T08:46:10Z
New Revision: a756dc4724a279d76898bacd054a04832b02caa8

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

LOG: [lldb][test] Try a workaround for module cache test on Arm/AArch64 Linux

If this works it'll give me a clue for the underlying issue.

Added: 
    

Modified: 
    lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py

Removed: 
    


################################################################################
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 dc736d07d885ef..cc9da15b566c25 100644
--- a/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
+++ b/lldb/test/API/python_api/global_module_cache/TestGlobalModuleCache.py
@@ -34,10 +34,6 @@ 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)
 
@@ -104,6 +100,13 @@ def do_test(self, one_target, one_debugger):
                 self.old_debugger = self.dbg
                 self.dbg = new_debugger
                 def cleanupDebugger(self):
+                    # On Arm and AArch64 Linux, it is suspected that destroying
+                    # the debugger first causes lldb to try to pop from an empty
+                    # thread plan stack. Try to prove this by killing the process
+                    # first.
+                    for i in range(self.dbg.GetNumTargets()):
+                        self.dbg.GetTargetAtIndex(i).GetProcess().Kill()
+
                     lldb.SBDebugger.Destroy(self.dbg)
                     self.dbg = self.old_debugger
                     self.old_debugger = None


        


More information about the lldb-commits mailing list