summaryrefslogtreecommitdiffstats
path: root/lldb/examples/summaries/cocoa/NSSet.py
diff options
context:
space:
mode:
authorEnrico Granata <egranata@apple.com>2012-04-02 16:39:29 +0000
committerEnrico Granata <egranata@apple.com>2012-04-02 16:39:29 +0000
commit247bd419ce4aaacec52220a5c8234456e069470c (patch)
treeca75e4e6d5117d65454fbaca09a0714a09cee63a /lldb/examples/summaries/cocoa/NSSet.py
parent73223bbd0a443ba4461a9cdd51168295d7e1b7ee (diff)
downloadbcm5719-llvm-247bd419ce4aaacec52220a5c8234456e069470c.tar.gz
bcm5719-llvm-247bd419ce4aaacec52220a5c8234456e069470c.zip
Logging for data formatters.
llvm-svn: 153878
Diffstat (limited to 'lldb/examples/summaries/cocoa/NSSet.py')
-rw-r--r--lldb/examples/summaries/cocoa/NSSet.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/lldb/examples/summaries/cocoa/NSSet.py b/lldb/examples/summaries/cocoa/NSSet.py
index 57259c67a0b..a9378ae6228 100644
--- a/lldb/examples/summaries/cocoa/NSSet.py
+++ b/lldb/examples/summaries/cocoa/NSSet.py
@@ -11,6 +11,7 @@ import ctypes
import objc_runtime
import metrics
import CFBag
+import Logger
statistics = metrics.Metrics()
statistics.add_metric('invalid_isa')
@@ -26,6 +27,7 @@ class NSCFSet_SummaryProvider:
pass
def __init__(self, valobj, params):
+ logger = Logger.Logger()
self.valobj = valobj;
self.sys_params = params
if not(self.sys_params.types_cache.NSUInteger):
@@ -36,18 +38,21 @@ class NSCFSet_SummaryProvider:
self.update();
def update(self):
+ logger = Logger.Logger()
self.adjust_for_architecture();
# one pointer is the ISA
# then we have one other internal pointer, plus
# 4 bytes worth of flags. hence, these values
def offset(self):
+ logger = Logger.Logger()
if self.sys_params.is_64_bit:
return 20
else:
return 12
def count(self):
+ logger = Logger.Logger()
vcount = self.valobj.CreateChildAtOffset("count",
self.offset(),
self.sys_params.types_cache.NSUInteger)
@@ -59,14 +64,17 @@ class NSSetUnknown_SummaryProvider:
pass
def __init__(self, valobj, params):
+ logger = Logger.Logger()
self.valobj = valobj;
self.sys_params = params
self.update();
def update(self):
+ logger = Logger.Logger()
self.adjust_for_architecture();
def count(self):
+ logger = Logger.Logger()
stream = lldb.SBStream()
self.valobj.GetExpressionPath(stream)
expr = "(int)[" + stream.GetData() + " count]"
@@ -80,6 +88,7 @@ class NSSetI_SummaryProvider:
pass
def __init__(self, valobj, params):
+ logger = Logger.Logger()
self.valobj = valobj;
self.sys_params = params
if not(self.sys_params.types_cache.NSUInteger):
@@ -90,13 +99,16 @@ class NSSetI_SummaryProvider:
self.update();
def update(self):
+ logger = Logger.Logger()
self.adjust_for_architecture();
# we just need to skip the ISA and the count immediately follows
def offset(self):
+ logger = Logger.Logger()
return self.sys_params.pointer_size
def count(self):
+ logger = Logger.Logger()
num_children_vo = self.valobj.CreateChildAtOffset("count",
self.offset(),
self.sys_params.types_cache.NSUInteger)
@@ -117,6 +129,7 @@ class NSSetM_SummaryProvider:
pass
def __init__(self, valobj, params):
+ logger = Logger.Logger()
self.valobj = valobj;
self.sys_params = params
if not(self.sys_params.types_cache.NSUInteger):
@@ -127,13 +140,16 @@ class NSSetM_SummaryProvider:
self.update();
def update(self):
+ logger = Logger.Logger()
self.adjust_for_architecture();
# we just need to skip the ISA and the count immediately follows
def offset(self):
+ logger = Logger.Logger()
return self.sys_params.pointer_size
def count(self):
+ logger = Logger.Logger()
num_children_vo = self.valobj.CreateChildAtOffset("count",
self.offset(),
self.sys_params.types_cache.NSUInteger)
@@ -145,6 +161,7 @@ class NSCountedSet_SummaryProvider:
pass
def __init__(self, valobj, params):
+ logger = Logger.Logger()
self.valobj = valobj;
self.sys_params = params
if not (self.sys_params.types_cache.voidptr):
@@ -152,13 +169,16 @@ class NSCountedSet_SummaryProvider:
self.update();
def update(self):
+ logger = Logger.Logger()
self.adjust_for_architecture();
# an NSCountedSet is implemented using a CFBag whose pointer just follows the ISA
def offset(self):
+ logger = Logger.Logger()
return self.sys_params.pointer_size
def count(self):
+ logger = Logger.Logger()
cfbag_vo = self.valobj.CreateChildAtOffset("bag_impl",
self.offset(),
self.sys_params.types_cache.voidptr)
@@ -166,12 +186,15 @@ class NSCountedSet_SummaryProvider:
def GetSummary_Impl(valobj):
+ logger = Logger.Logger()
global statistics
class_data,wrapper = objc_runtime.Utilities.prepare_class_detection(valobj,statistics)
if wrapper:
return wrapper
name_string = class_data.class_name()
+ logger >> "class name is: " + str(name_string)
+
if name_string == '__NSCFSet':
wrapper = NSCFSet_SummaryProvider(valobj, class_data.sys_params)
statistics.metric_hit('code_notrun',valobj)
@@ -191,6 +214,7 @@ def GetSummary_Impl(valobj):
def NSSet_SummaryProvider (valobj,dict):
+ logger = Logger.Logger()
provider = GetSummary_Impl(valobj);
if provider != None:
try:
@@ -207,6 +231,7 @@ def NSSet_SummaryProvider (valobj,dict):
return 'Summary Unavailable'
def NSSet_SummaryProvider2 (valobj,dict):
+ logger = Logger.Logger()
provider = GetSummary_Impl(valobj);
if provider != None:
if isinstance(provider,objc_runtime.SpecialSituation_Description):
@@ -215,6 +240,7 @@ def NSSet_SummaryProvider2 (valobj,dict):
summary = provider.count();
except:
summary = None
+ logger >> "got summary " + str(summary)
# for some reason, one needs to clear some bits for the count returned
# to be correct when using directly CF*SetRef as compared to NS*Set
# this only happens on 64bit, and the bit mask was derived through
OpenPOWER on IntegriCloud