https://github.com/mchoo7 updated 
https://github.com/llvm/llvm-project/pull/178069

>From 9ec10a430fce465944f3e1ec3db552c03eb96b72 Mon Sep 17 00:00:00 2001
From: Minsoo Choo <[email protected]>
Date: Mon, 26 Jan 2026 14:58:11 -0500
Subject: [PATCH] [lldb] [Process/FreeBSDKernel] Select paniced thread
 automatically

Signed-off-by: Minsoo Choo <[email protected]>
---
 .../Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp        | 8 +++++++-
 .../Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h  | 5 ++++-
 2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp 
b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp
index d209e5b5384f3..ced8fa6f28c84 100644
--- a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp
+++ b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.cpp
@@ -118,7 +118,12 @@ bool ProcessFreeBSDKernel::CanDebug(lldb::TargetSP 
target_sp,
   return true;
 }
 
-void ProcessFreeBSDKernel::RefreshStateAfterStop() {}
+void ProcessFreeBSDKernel::RefreshStateAfterStop() {
+  if (m_crashed_thread_id != LLDB_INVALID_THREAD_ID) {
+    GetThreadList().SetSelectedThreadByID(m_crashed_thread_id);
+    m_crashed_thread_id = LLDB_INVALID_THREAD_ID;
+  }
+}
 
 bool ProcessFreeBSDKernel::DoUpdateThreadList(ThreadList &old_thread_list,
                                               ThreadList &new_thread_list) {
@@ -232,6 +237,7 @@ bool ProcessFreeBSDKernel::DoUpdateThreadList(ThreadList 
&old_thread_list,
           // NB: dumppcb can be LLDB_INVALID_ADDRESS if reading it failed
           pcb_addr = dumppcb;
           thread_desc += " (crashed)";
+          m_crashed_thread_id = tid;
         } else if (oncpu != -1) {
           // if we managed to read stoppcbs and pcb_size, use them to find
           // the correct PCB
diff --git a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h 
b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h
index 06c9d062441e5..2a4ee1955d37d 100644
--- a/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h
+++ b/lldb/source/Plugins/Process/FreeBSDKernel/ProcessFreeBSDKernel.h
@@ -48,7 +48,10 @@ class ProcessFreeBSDKernel : public 
lldb_private::PostMortemProcess {
   bool DoUpdateThreadList(lldb_private::ThreadList &old_thread_list,
                           lldb_private::ThreadList &new_thread_list) override;
 
-  lldb::addr_t FindSymbol(const char* name);
+  lldb::addr_t FindSymbol(const char *name);
+
+private:
+  lldb::tid_t m_crashed_thread_id = LLDB_INVALID_THREAD_ID;
 };
 
 #endif // LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNEL_H

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to