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
