https://github.com/DrSergei created 
https://github.com/llvm/llvm-project/pull/183740

Added memory history in ASan report (like `memory history` console command)

>From 179971a9eb98e17d896b9a8c08245d5725812d2e Mon Sep 17 00:00:00 2001
From: Sergei Druzhkov <[email protected]>
Date: Fri, 27 Feb 2026 16:29:06 +0300
Subject: [PATCH] [lldb-dap] Add memory history in ASan report

---
 .../Handler/ExceptionInfoRequestHandler.cpp   | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/lldb/tools/lldb-dap/Handler/ExceptionInfoRequestHandler.cpp 
b/lldb/tools/lldb-dap/Handler/ExceptionInfoRequestHandler.cpp
index c92a607d9b7b0..bded3dbd9cd81 100644
--- a/lldb/tools/lldb-dap/Handler/ExceptionInfoRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/ExceptionInfoRequestHandler.cpp
@@ -231,6 +231,25 @@ static std::string FormatExtendedStopInfo(lldb::SBThread 
&thread) {
   // Check if we can improve the formatting of the raw JSON report.
   if (report) {
     OS << *report;
+    std::visit(
+        [&](auto &&report) {
+          using T = std::decay_t<decltype(report)>;
+          if constexpr (std::is_same_v<T, ASanReport>) {
+            lldb::addr_t address = report.address;
+            lldb::SBProcess process = thread.GetProcess();
+            lldb::SBThreadCollection history_threads =
+                process.GetHistoryThreads(address);
+            lldb::SBStream stream;
+            OS << "Memory history associated with addres: 0x"
+               << llvm::utohexstr(address) << "\n";
+            for (const auto history_thread : history_threads) {
+              if (history_thread.GetStatus(stream))
+                OS << stream << "\n";
+              stream.Clear();
+            }
+          }
+        },
+        *report);
   } else {
     consumeError(report.takeError());
     OS << stream;

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

Reply via email to