[Lldb-commits] [lldb] 7214a3d - [lldb] Do not accept invalid `process save-core` plugins (#142684)
via lldb-commits
lldb-commits at lists.llvm.org
Wed Jun 4 03:33:39 PDT 2025
Author: Ebuka Ezike
Date: 2025-06-04T11:33:35+01:00
New Revision: 7214a3d3da851018a96ac85060a2f9aeb7715f7f
URL: https://github.com/llvm/llvm-project/commit/7214a3d3da851018a96ac85060a2f9aeb7715f7f
DIFF: https://github.com/llvm/llvm-project/commit/7214a3d3da851018a96ac85060a2f9aeb7715f7f.diff
LOG: [lldb] Do not accept invalid `process save-core` plugins (#142684)
Fixes #142581
Added:
lldb/test/Shell/Commands/command-process-save-core-not-a-plugin.test
Modified:
lldb/source/Commands/CommandObjectProcess.cpp
lldb/source/Symbol/SaveCoreOptions.cpp
Removed:
################################################################################
diff --git a/lldb/source/Commands/CommandObjectProcess.cpp b/lldb/source/Commands/CommandObjectProcess.cpp
index d0f5eaf2dfd9a..b1f243c9e2777 100644
--- a/lldb/source/Commands/CommandObjectProcess.cpp
+++ b/lldb/source/Commands/CommandObjectProcess.cpp
@@ -1303,7 +1303,7 @@ class CommandObjectProcessSaveCore : public CommandObjectParsed {
llvm_unreachable("Unimplemented option");
}
- return {};
+ return error;
}
void OptionParsingStarting(ExecutionContext *execution_context) override {
diff --git a/lldb/source/Symbol/SaveCoreOptions.cpp b/lldb/source/Symbol/SaveCoreOptions.cpp
index e51ae27954934..d884b00a47b00 100644
--- a/lldb/source/Symbol/SaveCoreOptions.cpp
+++ b/lldb/source/Symbol/SaveCoreOptions.cpp
@@ -24,7 +24,6 @@ Status SaveCoreOptions::SetPluginName(const char *name) {
if (!PluginManager::IsRegisteredObjectFilePluginName(name)) {
return Status::FromErrorStringWithFormat(
"plugin name '%s' is not a valid ObjectFile plugin name", name);
- return error;
}
m_plugin_name = name;
diff --git a/lldb/test/Shell/Commands/command-process-save-core-not-a-plugin.test b/lldb/test/Shell/Commands/command-process-save-core-not-a-plugin.test
new file mode 100644
index 0000000000000..c034c8ebbf87d
--- /dev/null
+++ b/lldb/test/Shell/Commands/command-process-save-core-not-a-plugin.test
@@ -0,0 +1,19 @@
+# This checks that lldb returns an error if process save-core is called
+# with a plugin that does not exist.
+
+# RUN: %clang_host -g %S/Inputs/main.c -o %t
+# RUN: %lldb %t -s %s -o exit 2>&1 | FileCheck %s
+
+b main
+# CHECK-LABEL: b main
+# CHECK: Breakpoint 1: where = {{.*}}`main
+
+run
+# CHECK-LABEL: run
+# CHECK: Process {{.*}} stopped
+# CHECK: stop reason = breakpoint 1
+# CHECK: frame #0: {{.*}}`main at main.c
+
+process save-core --plugin-name=notaplugin dump
+# CHECK-LABEL: process save-core --plugin-name=notaplugin dump
+# CHECK: error: plugin name 'notaplugin' is not a valid ObjectFile plugin name
More information about the lldb-commits
mailing list