https://github.com/aokblast updated 
https://github.com/llvm/llvm-project/pull/195679

>From 14259a447a78432ee1a2b4fa2c00474c65c7edc5 Mon Sep 17 00:00:00 2001
From: ShengYi Hung <[email protected]>
Date: Mon, 4 May 2026 23:25:57 +0800
Subject: [PATCH 1/2] [LLDB][FreeBSD] Implement DoStopIDBumped on FreeBSD

When stopping, we should clear the mmap cache and repopulate all regions
to properly handle new mmap syscalls. Without this, binaries loaded via
dlopen or user-initiated mmap calls will not be recognized as valid
memory regions.

Fixes: https://github.com/llvm/llvm-project/issues/180445
---
 .../Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp      | 8 ++++++++
 .../source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp 
b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
index 46e9ac1cfd6fa..fc215d1bb7ef5 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp
@@ -1089,3 +1089,11 @@ NativeProcessFreeBSD::SaveCore(llvm::StringRef 
path_hint) {
       "PT_COREDUMP not supported in the FreeBSD version used to build LLDB");
 #endif
 }
+
+void NativeProcessFreeBSD::DoStopIDBumped(uint32_t newBumpId) {
+  Log *log = GetLog(POSIXLog::Process);
+  LLDB_LOG(log, "newBumpId={0}", newBumpId);
+  LLDB_LOG(log, "clearing {0} entries from memory region cache",
+           m_mem_region_cache.size());
+  m_mem_region_cache.clear();
+}
diff --git a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h 
b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h
index fb7372817265d..46e1f6564d3fb 100644
--- a/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h
+++ b/lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.h
@@ -92,6 +92,8 @@ class NativeProcessFreeBSD : public NativeProcessELF,
 
   llvm::Expected<std::string> SaveCore(llvm::StringRef path_hint) override;
 
+  void DoStopIDBumped(uint32_t newBumpId) override;
+
 protected:
   llvm::Expected<llvm::ArrayRef<uint8_t>>
   GetSoftwareBreakpointTrapOpcode(size_t size_hint) override;

>From 0a9a4f0d0216bc9e924306b9085c8e14fe2176e7 Mon Sep 17 00:00:00 2001
From: ShengYi Hung <[email protected]>
Date: Tue, 5 May 2026 16:28:05 +0800
Subject: [PATCH 2/2] fixup! [LLDB][FreeBSD] Implement DoStopIDBumped on
 FreeBSD

---
 lldb/test/Shell/Breakpoint/Inputs/break_stepout.c |  2 ++
 lldb/test/Shell/Breakpoint/step-out.test          | 10 ++++++++++
 2 files changed, 12 insertions(+)
 create mode 100644 lldb/test/Shell/Breakpoint/Inputs/break_stepout.c
 create mode 100644 lldb/test/Shell/Breakpoint/step-out.test

diff --git a/lldb/test/Shell/Breakpoint/Inputs/break_stepout.c 
b/lldb/test/Shell/Breakpoint/Inputs/break_stepout.c
new file mode 100644
index 0000000000000..b7ae5db6e77bf
--- /dev/null
+++ b/lldb/test/Shell/Breakpoint/Inputs/break_stepout.c
@@ -0,0 +1,2 @@
+#include <stdio.h>
+int main() { printf("Hello World\n"); }
diff --git a/lldb/test/Shell/Breakpoint/step-out.test 
b/lldb/test/Shell/Breakpoint/step-out.test
new file mode 100644
index 0000000000000..101dbe6eac1e7
--- /dev/null
+++ b/lldb/test/Shell/Breakpoint/step-out.test
@@ -0,0 +1,10 @@
+# RUN: cp %p/Inputs/break_stepout.c %t.c
+# RUN: %clang_host -g -o %t %t.c
+# RUN: rm %t.c
+# RUN: %lldb -b -o "br set -n vfprintf" -o run -o "thread step-out" -o "thread 
step-out" %t 2>&1 | FileCheck %s
+
+## Check if we step-out twice sucessfully
+
+CHECK: stop reason = step out
+CHECK: stop reason = step out
+

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

Reply via email to