[Lldb-commits] [lldb] [lldb] Fix SBValue.format property (PR #216802)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Aug 17 11:20:46 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Ebuka Ezike (da-viper)
<details>
<summary>Changes</summary>
lldb.SBValue.format should map to GetFormat instead of GetName
---
Full diff: https://github.com/llvm/llvm-project/pull/216802.diff
3 Files Affected:
- (modified) lldb/bindings/interface/SBValueExtensions.i (+1-1)
- (modified) lldb/test/API/python_api/value/TestValueAPI.py (+16)
- (modified) lldb/test/API/python_api/value/main.c (+1)
``````````diff
diff --git a/lldb/bindings/interface/SBValueExtensions.i b/lldb/bindings/interface/SBValueExtensions.i
index 6d583aa28da3a..1748eaec44da9 100644
--- a/lldb/bindings/interface/SBValueExtensions.i
+++ b/lldb/bindings/interface/SBValueExtensions.i
@@ -70,7 +70,7 @@ STRING_EXTENSION_OUTSIDE(SBValue)
type = property(GetType, None, doc='''A read only property that returns a lldb.SBType object that represents the type for this value.''')
size = property(GetByteSize, None, doc='''A read only property that returns the size in bytes of this value.''')
is_in_scope = property(IsInScope, None, doc='''A read only property that returns a boolean value that indicates whether this value is currently lexically in scope.''')
- format = property(GetName, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''')
+ format = property(GetFormat, SetFormat, doc='''A read/write property that gets/sets the format used for lldb.SBValue().GetValue() for this value. See enumerations that start with "lldb.eFormat".''')
value = property(GetValue, SetValueFromCString, doc='''A read/write property that gets/sets value from a string.''')
value_type = property(GetValueType, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eValueType") that represents the type of this value (local, argument, global, register, etc.).''')
changed = property(GetValueDidChange, None, doc='''A read only property that returns a boolean value that indicates if this value has changed since it was last updated.''')
diff --git a/lldb/test/API/python_api/value/TestValueAPI.py b/lldb/test/API/python_api/value/TestValueAPI.py
index beb3a6fce65f7..cdc8c46723803 100644
--- a/lldb/test/API/python_api/value/TestValueAPI.py
+++ b/lldb/test/API/python_api/value/TestValueAPI.py
@@ -273,6 +273,22 @@ def test(self):
a_null_int_ptr = frame0.FindVariable("a_null_int_ptr")
self.assertEqual(a_null_int_ptr.GetValue(), "0x0")
+ a_val: lldb.SBValue = frame0.FindVariable("a_val")
+ self.assertTrue(a_val)
+ self.assertEqual(a_val.value, "10")
+ self.assertEqual(a_val.GetValue(), "10")
+
+ a_val.SetFormat(lldb.eFormatBoolean)
+ self.assertEqual(a_val.format, lldb.eFormatBoolean)
+ self.assertEqual(a_val.GetFormat(), lldb.eFormatBoolean)
+ self.assertEqual(a_val.value.lower(), "true")
+
+ # Verify the setter.
+ a_val.format = lldb.eFormatHex
+ self.assertEqual(a_val.format, lldb.eFormatHex)
+ self.assertEqual(a_val.GetFormat(), lldb.eFormatHex)
+ self.assertEqual(a_val.value.lower(), "0xa")
+
# Check that dereferencing a null pointer produces reasonable results
# (does not crash).
self.assertEqual(
diff --git a/lldb/test/API/python_api/value/main.c b/lldb/test/API/python_api/value/main.c
index cdb2aa2f6147b..5798207242fd0 100644
--- a/lldb/test/API/python_api/value/main.c
+++ b/lldb/test/API/python_api/value/main.c
@@ -51,6 +51,7 @@ int main (int argc, char const *argv[])
int32_t sinthex = 0xE0A35F10;
int i;
+ int a_val = 10;
MyInt a = 12345;
struct MyStruct s = {11, 22};
struct MyBiggerStruct f = { 33, 44, 55 };
``````````
</details>
https://github.com/llvm/llvm-project/pull/216802
More information about the lldb-commits
mailing list