Author: Michael Buch
Date: 2026-02-18T08:47:14Z
New Revision: 7897d928be14089870469342d497a822befaf39d

URL: 
https://github.com/llvm/llvm-project/commit/7897d928be14089870469342d497a822befaf39d
DIFF: 
https://github.com/llvm/llvm-project/commit/7897d928be14089870469342d497a822befaf39d.diff

LOG: [lldb][CommandObjectType] Print name of Python class when emitting warning 
about invalid synthetic provider (#181829)

Before:
```
(lldb) type synthetic add -l blah foo
warning: The provided class does not exist - please define it before attempting 
to use this synthetic provider
```

After:
```
(lldb) type synthetic add -l blah foo
warning: The provided class 'blah' does not exist - please define it before 
attempting to use this synthetic provider
```

Useful when many of these registration commands happen as part of
`~/.lldbinit`. Previously it wasn't immediately obvious which of those
commands failed.

Added: 
    lldb/test/Shell/Commands/command-type-synthetic-add.test

Modified: 
    lldb/source/Commands/CommandObjectType.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Commands/CommandObjectType.cpp 
b/lldb/source/Commands/CommandObjectType.cpp
index 6e79d69b5a0a6..bd03cb8fe6516 100644
--- a/lldb/source/Commands/CommandObjectType.cpp
+++ b/lldb/source/Commands/CommandObjectType.cpp
@@ -2181,10 +2181,12 @@ bool CommandObjectTypeSynthAdd::Execute_PythonClass(
 
   ScriptInterpreter *interpreter = GetDebugger().GetScriptInterpreter();
 
-  if (interpreter &&
-      !interpreter->CheckObjectExists(impl->GetPythonClassName()))
-    result.AppendWarning("The provided class does not exist - please define it 
"
-                         "before attempting to use this synthetic provider");
+  const char *python_class_name = impl->GetPythonClassName();
+  if (interpreter && !interpreter->CheckObjectExists(python_class_name))
+    result.AppendWarningWithFormatv(
+        "The provided class '{0}' does not exist - please define it "
+        "before attempting to use this synthetic provider",
+        llvm::StringRef(python_class_name));
 
   // now I have a valid provider, let's add it to every type
 

diff  --git a/lldb/test/Shell/Commands/command-type-synthetic-add.test 
b/lldb/test/Shell/Commands/command-type-synthetic-add.test
new file mode 100644
index 0000000000000..3b1c8458e48e1
--- /dev/null
+++ b/lldb/test/Shell/Commands/command-type-synthetic-add.test
@@ -0,0 +1,6 @@
+# REQUIRES: python
+
+# RUN: %lldb -b -o 'type synthetic add --python-class blah blah-name' 2>&1 | 
FileCheck %s
+
+# CHECK:      (lldb) type synthetic
+# CHECK-NEXT: The provided class 'blah' does not exist


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

Reply via email to