[Lldb-commits] [lldb] [lldb] Fix scripted frame provider cross-thread re-entrant deadlock (PR #208992)

via lldb-commits lldb-commits at lists.llvm.org
Sat Jul 18 12:05:59 PDT 2026


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {darker}-->


:warning: Python code formatter, darker found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
darker --check --diff -r origin/main...HEAD lldb/test/API/functionalities/scripted_frame_provider/register_command_api_mutex_deadlock/TestFrameProviderRegisterCommandAPIMutexDeadlock.py lldb/test/API/functionalities/scripted_frame_provider/register_command_api_mutex_deadlock/frame_provider.py lldb/test/API/functionalities/scripted_frame_provider/register_command_frame_alias_deadlock/TestFrameProviderRegisterCommandFrameAliasDeadlock.py lldb/test/API/functionalities/scripted_frame_provider/register_command_frame_alias_deadlock/frame_provider.py lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/TestHoldMutexNoDeadlock.py lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/TestSBMutexReflectsTargetMutex.py lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/hold_mutex_frame_provider.py lldb/test/API/functionalities/scripted_frame_provider/sbmutex_reflects_target_mutex/sbmutex_frame_provider.py
``````````

:warning:
The reproduction instructions above might return results for more than one PR
in a stack if you are using a stacked PR workflow. You can limit the results by
changing `origin/main` to the base branch/commit you want to compare against.
:warning:

</details>

<details>
<summary>
View the diff from darker here.
</summary>

``````````diff
--- sbmutex_reflects_target_mutex/TestHoldMutexNoDeadlock.py	2026-07-18 18:24:07.000000 +0000
+++ sbmutex_reflects_target_mutex/TestHoldMutexNoDeadlock.py	2026-07-18 19:05:26.843500 +0000
@@ -83,6 +83,5 @@
 
         self.assertFalse(has_crashed, "lldb should not have crashed")
         self.assertTrue(quit_requested, "quit command should have been processed")
         self.assertEqual(n_errors, 0, f"unexpected errors in output:\n{output}")
         self.assertIn("successfully registered scripted frame provider", output)
-
--- sbmutex_reflects_target_mutex/hold_mutex_frame_provider.py	2026-07-18 18:24:07.000000 +0000
+++ sbmutex_reflects_target_mutex/hold_mutex_frame_provider.py	2026-07-18 19:05:26.875393 +0000
@@ -26,11 +26,13 @@
 
 
 class HoldMutexFrameProvider(ScriptedFrameProvider):
     @staticmethod
     def get_description():
-        return "Provider that holds the real API mutex via SBMutex from get_frame_at_index"
+        return (
+            "Provider that holds the real API mutex via SBMutex from get_frame_at_index"
+        )
 
     def get_frame_at_index(self, index):
         if index >= len(self.input_frames):
             return None
 

``````````

</details>


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


More information about the lldb-commits mailing list