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
