https://github.com/DavidSpickett created 
https://github.com/llvm/llvm-project/pull/183485

Reverts llvm/llvm-project#183237

This was landed without addressing review comments.

>From e9393cd23c8d3f2ff01e55b0fef243f1d85ce29e Mon Sep 17 00:00:00 2001
From: David Spickett <[email protected]>
Date: Thu, 26 Feb 2026 10:05:21 +0000
Subject: [PATCH] Revert "[lldb][Process/FreeBSDKernelCore] Implement
 DoWriteMemory() (#183237)"

This reverts commit 85a1fe692c123683bb16dd39f50c295198e7a819.
---
 .../FreeBSD-Kernel-Core/CMakeLists.txt        | 12 ----
 .../ProcessFreeBSDKernelCore.cpp              | 71 +------------------
 .../ProcessFreeBSDKernelCore.h                |  6 --
 .../ProcessFreeBSDKernelCoreProperties.td     |  8 ---
 llvm/docs/ReleaseNotes.md                     |  2 -
 5 files changed, 2 insertions(+), 97 deletions(-)
 delete mode 100644 
lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCoreProperties.td

diff --git a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/CMakeLists.txt 
b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/CMakeLists.txt
index d847a2f584bc6..1cb96b7c3f523 100644
--- a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/CMakeLists.txt
+++ b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/CMakeLists.txt
@@ -1,11 +1,3 @@
-lldb_tablegen(ProcessFreeBSDKernelCoreProperties.inc -gen-lldb-property-defs
-  SOURCE ProcessFreeBSDKernelCoreProperties.td
-  TARGET LLDBPluginProcessFreeBSDKernelCorePropertiesGen)
-
-lldb_tablegen(ProcessFreeBSDKernelCorePropertiesEnum.inc 
-gen-lldb-property-enum-defs
-  SOURCE ProcessFreeBSDKernelCoreProperties.td
-  TARGET LLDBPluginProcessFreeBSDKernelCorePropertiesEnumGen)
-
 add_lldb_library(lldbPluginProcessFreeBSDKernelCore PLUGIN
   ProcessFreeBSDKernelCore.cpp
   RegisterContextFreeBSDKernelCore_arm.cpp
@@ -21,7 +13,3 @@ add_lldb_library(lldbPluginProcessFreeBSDKernelCore PLUGIN
     lldbTarget
     kvm
   )
-
-add_dependencies(lldbPluginProcessFreeBSDKernelCore
-  LLDBPluginProcessFreeBSDKernelCorePropertiesGen
-  LLDBPluginProcessFreeBSDKernelCorePropertiesEnumGen)
diff --git 
a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp 
b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
index b1f8dae481944..ebbf89669cc40 100644
--- 
a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
+++ 
b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.cpp
@@ -6,6 +6,7 @@
 //
 
//===----------------------------------------------------------------------===//
 
+#include "lldb/Core/Debugger.h"
 #include "lldb/Core/Module.h"
 #include "lldb/Core/PluginManager.h"
 #include "lldb/Interpreter/CommandInterpreter.h"
@@ -24,42 +25,6 @@ using namespace lldb_private;
 
 LLDB_PLUGIN_DEFINE(ProcessFreeBSDKernelCore)
 
-namespace {
-
-#define LLDB_PROPERTIES_processfreebsdkernelcore
-#include "ProcessFreeBSDKernelCoreProperties.inc"
-
-enum {
-#define LLDB_PROPERTIES_processfreebsdkernelcore
-#include "ProcessFreeBSDKernelCorePropertiesEnum.inc"
-};
-
-class PluginProperties : public Properties {
-public:
-  static llvm::StringRef GetSettingName() {
-    return ProcessFreeBSDKernelCore::GetPluginNameStatic();
-  }
-
-  PluginProperties() : Properties() {
-    m_collection_sp = 
std::make_shared<OptionValueProperties>(GetSettingName());
-    m_collection_sp->Initialize(g_processfreebsdkernelcore_properties_def);
-  }
-
-  ~PluginProperties() override = default;
-
-  bool GetReadOnly() const {
-    const uint32_t idx = ePropertyReadOnly;
-    return GetPropertyAtIndexAs<bool>(idx, true);
-  }
-};
-
-} // namespace
-
-static PluginProperties &GetGlobalPluginProperties() {
-  static PluginProperties g_settings;
-  return g_settings;
-}
-
 ProcessFreeBSDKernelCore::ProcessFreeBSDKernelCore(lldb::TargetSP target_sp,
                                                    ListenerSP listener_sp,
                                                    kvm_t *kvm,
@@ -91,22 +56,10 @@ void ProcessFreeBSDKernelCore::Initialize() {
 
   llvm::call_once(g_once_flag, []() {
     PluginManager::RegisterPlugin(GetPluginNameStatic(),
-                                  GetPluginDescriptionStatic(), CreateInstance,
-                                  DebuggerInitialize);
+                                  GetPluginDescriptionStatic(), 
CreateInstance);
   });
 }
 
-void ProcessFreeBSDKernelCore::DebuggerInitialize(Debugger &debugger) {
-  if (!PluginManager::GetSettingForProcessPlugin(
-          debugger, PluginProperties::GetSettingName())) {
-    const bool is_global_setting = true;
-    PluginManager::CreateSettingForProcessPlugin(
-        debugger, GetGlobalPluginProperties().GetValueProperties(),
-        "Properties for the freebsd-kernel process plug-in.",
-        is_global_setting);
-  }
-}
-
 void ProcessFreeBSDKernelCore::Terminate() {
   PluginManager::UnregisterPlugin(ProcessFreeBSDKernelCore::CreateInstance);
 }
@@ -137,26 +90,6 @@ void ProcessFreeBSDKernelCore::RefreshStateAfterStop() {
   }
 }
 
-size_t ProcessFreeBSDKernelCore::DoWriteMemory(lldb::addr_t addr,
-                                               const void *buf, size_t size,
-                                               Status &error) {
-  if (GetGlobalPluginProperties().GetReadOnly()) {
-    error = Status::FromErrorString(
-        "Memory writes are disabled in read-only mode. Disable with 'settings "
-        "set plugin.process.freebsd-kernel-core.read-only false'");
-    return 0;
-  }
-
-  ssize_t rd = 0;
-  rd = kvm_write(m_kvm, addr, buf, size);
-  if (rd < 0 || static_cast<size_t>(rd) != size) {
-    error = Status::FromErrorStringWithFormat("Writing memory failed: %s",
-                                              GetError());
-    return rd > 0 ? rd : 0;
-  }
-  return rd;
-}
-
 bool ProcessFreeBSDKernelCore::DoUpdateThreadList(ThreadList &old_thread_list,
                                                   ThreadList &new_thread_list) 
{
   if (old_thread_list.GetSize(false) == 0) {
diff --git 
a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.h 
b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.h
index 67cfae13d2a4d..c677c236ddc21 100644
--- a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.h
+++ b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCore.h
@@ -9,7 +9,6 @@
 #ifndef LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNELCORE_H
 #define LLDB_SOURCE_PLUGINS_PROCESS_FREEBSDKERNEL_PROCESSFREEBSDKERNELCORE_H
 
-#include "lldb/Core/Debugger.h"
 #include "lldb/Target/PostMortemProcess.h"
 
 #include <kvm.h>
@@ -28,8 +27,6 @@ class ProcessFreeBSDKernelCore : public 
lldb_private::PostMortemProcess {
 
   static void Initialize();
 
-  static void DebuggerInitialize(lldb_private::Debugger &debugger);
-
   static void Terminate();
 
   static llvm::StringRef GetPluginNameStatic() { return "freebsd-kernel-core"; 
}
@@ -51,9 +48,6 @@ class ProcessFreeBSDKernelCore : public 
lldb_private::PostMortemProcess {
 
   void RefreshStateAfterStop() override;
 
-  size_t DoWriteMemory(lldb::addr_t addr, const void *buf, size_t size,
-                       lldb_private::Status &error) override;
-
 protected:
   bool DoUpdateThreadList(lldb_private::ThreadList &old_thread_list,
                           lldb_private::ThreadList &new_thread_list) override;
diff --git 
a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCoreProperties.td
 
b/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCoreProperties.td
deleted file mode 100644
index 30986bf71aab4..0000000000000
--- 
a/lldb/source/Plugins/Process/FreeBSD-Kernel-Core/ProcessFreeBSDKernelCoreProperties.td
+++ /dev/null
@@ -1,8 +0,0 @@
-include "../../../../include/lldb/Core/PropertiesBase.td"
-
-let Definition = "processfreebsdkernelcore", Path = 
"plugin.process.freebsd-kernel-core" in {
-  def ReadOnly: Property<"read-only", "Boolean">,
-    Global,
-    DefaultTrue,
-    Desc<"Disable memory writes to the core. This is enabled by default for 
safety.">;
-}
diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md
index aee55857599c6..4d0ddf730844f 100644
--- a/llvm/docs/ReleaseNotes.md
+++ b/llvm/docs/ReleaseNotes.md
@@ -226,8 +226,6 @@ Changes to LLDB
 * Threads are listed in incrmental order by pid then by tid.
 * Unread kernel messages saved in msgbufp are now printed when lldb starts. 
This information is printed only
   when lldb is in the interactive mode (i.e. not in batch mode).
-* Memory writes are currently disabled. You can enable them with
-  `settings set plugin.process.freebsd-kernel-core.read-only false`.
 
 ### Linux
 

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

Reply via email to