[Lldb-commits] [lldb] Fix a bug where using "thread backtrace unique" would switch you to (PR #140993)
via lldb-commits
lldb-commits at lists.llvm.org
Wed May 21 19:46:21 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: None (jimingham)
<details>
<summary>Changes</summary>
always using the "frame-format-unique" even when you weren't doing the unique backtrace mode.
---
Full diff: https://github.com/llvm/llvm-project/pull/140993.diff
2 Files Affected:
- (modified) lldb/source/Commands/CommandObjectThreadUtil.cpp (+2)
- (modified) lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py (+17-1)
``````````diff
diff --git a/lldb/source/Commands/CommandObjectThreadUtil.cpp b/lldb/source/Commands/CommandObjectThreadUtil.cpp
index cdc5946547f47..a451de137d702 100644
--- a/lldb/source/Commands/CommandObjectThreadUtil.cpp
+++ b/lldb/source/Commands/CommandObjectThreadUtil.cpp
@@ -37,6 +37,8 @@ void CommandObjectIterateOverThreads::DoExecute(Args &command,
result.SetStatus(m_success_return);
bool all_threads = false;
+ m_unique_stacks = false;
+
if (command.GetArgumentCount() == 0) {
Thread *thread = m_exe_ctx.GetThreadPtr();
if (thread)
diff --git a/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py b/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
index ee9b14f15b6e9..40bc2a175c2f9 100644
--- a/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
+++ b/lldb/test/API/functionalities/thread/num_threads/TestNumThreads.py
@@ -132,10 +132,26 @@ def is_thread3(thread):
# Construct our expected back trace string
expect_string = "10 thread(s)%s" % (expect_threads)
+ # There was a bug where if you used 'thread backtrace unique'
+ # we would switch all future backtraces to use the
+ # "frame-format-unique" not the "frame-format". Make
+ # sure we don't do that...
+ setting_data = self.dbg.GetSetting("frame-format-unique")
+ setting_str = setting_data.GetStringValue(1000)
+ setting_str = "UNIQUE: " + setting_str
+ lldb.SBDebugger.SetInternalVariable("frame-format-unique", setting_str, self.dbg.GetInstanceName())
# Now that we are stopped, we should have 10 threads waiting in the
# thread3 function. All of these threads should show as one stack.
self.expect(
"thread backtrace unique",
"Backtrace with unique stack shown correctly",
- substrs=[expect_string, "main.cpp:%d" % self.thread3_before_lock_line],
+ substrs=[expect_string, "UNIQUE:", "main.cpp:%d" % self.thread3_before_lock_line],
+ )
+ # Make sure setting the unique flag in the command isn't
+ # persistent:
+ self.expect(
+ "thread backtrace",
+ "Backtrace unique is not sticky",
+ substrs=["UNIQUE:"],
+ matching=False
)
``````````
</details>
https://github.com/llvm/llvm-project/pull/140993
More information about the lldb-commits
mailing list