diff --git a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h index 49c5601dc0e5..aa784add7409 100644 --- a/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h +++ b/lldb/include/lldb/Core/ValueObjectSyntheticFilter.h @@ -140,6 +140,9 @@ public: return (UpdateValueIfNeeded(), m_provides_value == eLazyBoolYes); } + virtual bool + SetValueFromCString (const char *value_str, Error& error); + protected: virtual bool UpdateValue (); diff --git a/lldb/source/Core/ValueObjectSyntheticFilter.cpp b/lldb/source/Core/ValueObjectSyntheticFilter.cpp index dafe73a5e57e..e266267981b8 100644 --- a/lldb/source/Core/ValueObjectSyntheticFilter.cpp +++ b/lldb/source/Core/ValueObjectSyntheticFilter.cpp @@ -298,3 +298,9 @@ ValueObjectSynthetic::CanProvideValue () return true; return m_parent->CanProvideValue(); } + +bool +ValueObjectSynthetic::SetValueFromCString (const char *value_str, Error& error) +{ + return m_parent->SetValueFromCString(value_str, error); +} diff --git a/lldb/test/functionalities/data-formatter/setvaluefromcstring/Makefile b/lldb/test/functionalities/data-formatter/setvaluefromcstring/Makefile new file mode 100644 index 000000000000..62a57f6cd9be --- /dev/null +++ b/lldb/test/functionalities/data-formatter/setvaluefromcstring/Makefile @@ -0,0 +1,4 @@ +LEVEL = ../../../make +OBJC_SOURCES := main.m +include $(LEVEL)/Makefile.rules +LDFLAGS += -framework Foundation diff --git a/lldb/test/functionalities/data-formatter/setvaluefromcstring/TestSetValueFromCString.py b/lldb/test/functionalities/data-formatter/setvaluefromcstring/TestSetValueFromCString.py new file mode 100644 index 000000000000..a70d2ca74147 --- /dev/null +++ b/lldb/test/functionalities/data-formatter/setvaluefromcstring/TestSetValueFromCString.py @@ -0,0 +1,3 @@ +import lldbinline + +lldbinline.MakeInlineTest(__file__, globals()) diff --git a/lldb/test/functionalities/data-formatter/setvaluefromcstring/main.m b/lldb/test/functionalities/data-formatter/setvaluefromcstring/main.m new file mode 100644 index 000000000000..3dd455081007 --- /dev/null +++ b/lldb/test/functionalities/data-formatter/setvaluefromcstring/main.m @@ -0,0 +1,19 @@ +//===-- main.m ---------------------------------------------------*- ObjC -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +#import + +int main() { + NSDictionary* dic = @{@1 : @2}; + NSLog(@"hello world"); //% dic = self.frame().FindVariable("dic") + //% dic.SetPreferSyntheticValue(True) + //% dic.SetPreferDynamicValue(lldb.eDynamicCanRunTarget) + //% dic.SetValueFromCString("12") + return 0; //% dic = self.frame().FindVariable("dic") + //% self.assertTrue(dic.GetValueAsUnsigned() == 0xC, "failed to read what I wrote") +}