summaryrefslogtreecommitdiffstats
path: root/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py
diff options
context:
space:
mode:
authorEnrico Granata <granata.enrico@gmail.com>2011-07-29 23:59:08 +0000
committerEnrico Granata <granata.enrico@gmail.com>2011-07-29 23:59:08 +0000
commit3bcee02643609e036108151ff8ac5fadb58ef99f (patch)
treed05340e32e88ce99c48f444ce83f5c431c12265f /lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py
parent68b23116cbbc5e5952190e935d51cf1002846898 (diff)
downloadbcm5719-llvm-3bcee02643609e036108151ff8ac5fadb58ef99f.tar.gz
bcm5719-llvm-3bcee02643609e036108151ff8ac5fadb58ef99f.zip
changes in the new GetMinimumLanguages() ; robustness improvements in the CFStringSynthProvider object ; made a CFString_SummaryProvider function you can use if all you care about is the summary string for your NSString objects
llvm-svn: 136544
Diffstat (limited to 'lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py')
-rw-r--r--lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py b/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py
index bf82c1ddde3..0e39b73ae57 100644
--- a/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py
+++ b/lldb/test/functionalities/data-formatter/data-formatter-objc/CFString.py
@@ -7,6 +7,8 @@ class CFStringSynthProvider:
self.update()
# children other than "content" are for debugging only and must not be used in production code
def num_children(self):
+ if self.invalid:
+ return 0;
return 6;
def read_unicode(self, pointer):
process = self.valobj.GetTarget().GetProcess()
@@ -167,7 +169,12 @@ class CFStringSynthProvider:
self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar));
cfinfo.SetFormat(11)
info = cfinfo.GetValue();
- return int(info,0);
+ if info != None:
+ self.invalid = False;
+ return int(info,0);
+ else:
+ self.invalid = True;
+ return None;
# calculating internal flag bits of the CFString object
# this stuff is defined and discussed in CFString.c
def is_mutable(self):
@@ -196,6 +203,8 @@ class CFStringSynthProvider:
# useful values to get at the real data
def compute_flags(self):
self.info_bits = self.read_info_bits();
+ if self.info_bits == None:
+ return;
self.mutable = self.is_mutable();
self.inline = self.is_inline();
self.explicit = self.has_explicit_length();
@@ -204,3 +213,9 @@ class CFStringSynthProvider:
def update(self):
self.adjust_for_architecture();
self.compute_flags();
+def CFString_SummaryProvider (valobj,dict):
+ provider = CFStringSynthProvider(valobj,dict);
+ if provider.invalid == True:
+ return "<invalid object>";
+ return provider.get_child_at_index(provider.get_child_index("content")).GetSummary();
+
OpenPOWER on IntegriCloud