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
