[Lldb-commits] [lldb] [lldb] [Process/FreeBSDKernel] Show crash info on start (PR #178027)

Minsoo Choo via lldb-commits lldb-commits at lists.llvm.org
Fri Feb 6 05:35:50 PST 2026


================
@@ -277,6 +286,143 @@ lldb::addr_t ProcessFreeBSDKernel::FindSymbol(const char *name) {
   return sym ? sym->GetLoadAddress(&GetTarget()) : LLDB_INVALID_ADDRESS;
 }
 
+void ProcessFreeBSDKernel::ShowCrashInfo() {
+  Target &target = GetTarget();
+  Debugger &debugger = target.GetDebugger();
+
+  if (!debugger.GetCommandInterpreter().IsInteractive())
+    return;
+
+  Status error;
+
+  // Find msgbufp symbol (pointer to message buffer)
+  lldb::addr_t msgbufp_addr = FindSymbol("msgbufp");
+  if (msgbufp_addr == LLDB_INVALID_ADDRESS)
+    return;
+
+  // Read the pointer value
+  lldb::addr_t msgbufp = ReadPointerFromMemory(msgbufp_addr, error);
+  if (!error.Success() || msgbufp == LLDB_INVALID_ADDRESS)
+    return;
+
+  // Get the type information for struct msgbuf from DWARF
+  TypeQuery query("msgbuf");
----------------
mchoo7 wrote:

I'm sorry for marking this resolved.

FreeBSD has been using `struct msgbuf` in kgdb for decades, so if this breaks, it will be prioritized to be fixed for sure (in other words, there is a chain of developing tools that depend on msgbuf). For hardcoding offsets: although msgbuf structure hasn't been changed for almost 20 years, it might change in future. In that case, we'll need to create patch that detects FreeBSD version from core dump and extract message accordingly. I find that this can be bit problematic in future.

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


More information about the lldb-commits mailing list