Logging for data formatters.

llvm-svn: 153878
diff --git a/lldb/examples/summaries/cocoa/CFString.py b/lldb/examples/summaries/cocoa/CFString.py
index 6ffc776..a3a07a0 100644
--- a/lldb/examples/summaries/cocoa/CFString.py
+++ b/lldb/examples/summaries/cocoa/CFString.py
@@ -9,8 +9,10 @@
 # (and related NSString class)
 import lldb
 import objc_runtime
+import Logger
 
 def CFString_SummaryProvider (valobj,dict):
+	logger = Logger.Logger()
 	provider = CFStringSynthProvider(valobj,dict);
 	if provider.invalid == False:
 		try:
@@ -27,6 +29,7 @@
 	return ''
 
 def CFAttributedString_SummaryProvider (valobj,dict):
+	logger = Logger.Logger()
 	offset = valobj.GetTarget().GetProcess().GetAddressByteSize()
 	pointee = valobj.GetValueAsUnsigned(0)
 	summary = '<variable is not NSAttributedString>'
@@ -51,16 +54,19 @@
 
 class CFStringSynthProvider:
 	def __init__(self,valobj,dict):
+		logger = Logger.Logger()
 		self.valobj = valobj;
 		self.update()
 
 	# children other than "content" are for debugging only and must not be used in production code
 	def num_children(self):
+		logger = Logger.Logger()
 		if self.invalid:
 			return 0;
 		return 6;
 
 	def read_unicode(self, pointer):
+		logger = Logger.Logger()
 		process = self.valobj.GetTarget().GetProcess()
 		error = lldb.SBError()
 		pystr = u''
@@ -88,6 +94,7 @@
 	# handle the special case strings
 	# only use the custom code for the tested LP64 case
 	def handle_special(self):
+		logger = Logger.Logger()
 		if self.is_64_bit == False:
 			# for 32bit targets, use safe ObjC code
 			return self.handle_unicode_string_safe()
@@ -105,6 +112,7 @@
 			"(char*)\"" + self.valobj.GetObjectDescription() + "\"");
 
 	def handle_unicode_string(self):
+		logger = Logger.Logger()
 		# step 1: find offset
 		if self.inline:
 			pointer = self.valobj.GetValueAsUnsigned(0) + self.size_of_cfruntime_base();
@@ -130,12 +138,14 @@
 		return pystr.encode('utf-8')
 
 	def handle_inline_explicit(self):
+		logger = Logger.Logger()
 		offset = 3*self.pointer_size
 		offset = offset + self.valobj.GetValueAsUnsigned(0)
 		return self.valobj.CreateValueFromExpression("content",
 				"(char*)(" + str(offset) + ")")
 
 	def handle_mutable_string(self):
+		logger = Logger.Logger()
 		offset = 2 * self.pointer_size
 		data = self.valobj.CreateChildAtOffset("content",
 			offset, self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar).GetPointerType());
@@ -144,6 +154,7 @@
 		return self.valobj.CreateValueFromExpression("content", "(char*)(" + str(data_value) + ")")
 
 	def handle_UTF8_inline(self):
+		logger = Logger.Logger()
 		offset = self.valobj.GetValueAsUnsigned(0) + self.size_of_cfruntime_base();
 		if self.explicit == False:
 			offset = offset + 1;
@@ -151,11 +162,14 @@
 				offset, self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar)).AddressOf();
 
 	def handle_UTF8_not_inline(self):
+		logger = Logger.Logger()
 		offset = self.size_of_cfruntime_base();
 		return self.valobj.CreateChildAtOffset("content",
 				offset,self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar).GetPointerType());
 
 	def get_child_at_index(self,index):
+		logger = Logger.Logger()
+		logger >> "Querying for child [" + str(index) + "]"
 		if index == 0:
 			return self.valobj.CreateValueFromExpression("mutable",
 				str(int(self.mutable)));
@@ -201,6 +215,8 @@
 				return self.handle_UTF8_not_inline();
 
 	def get_child_index(self,name):
+		logger = Logger.Logger()
+		logger >> "Querying for child ['" + str(name) + "']"
 		if name == "content":
 			return self.num_children() - 1;
 		if name == "mutable":
@@ -219,6 +235,7 @@
 	# to get its size we add up sizeof(pointer)+4
 	# and then add 4 more bytes if we are on a 64bit system
 	def size_of_cfruntime_base(self):
+		logger = Logger.Logger()
 		return self.pointer_size+4+(4 if self.is_64_bit else 0)
 
 	# the info bits are part of the CFRuntimeBase structure
@@ -227,12 +244,14 @@
 	# on big-endian this means going to byte 3, if we are on
 	# little endian (OSX & iOS), this means reading byte 0
 	def offset_of_info_bits(self):
+		logger = Logger.Logger()
 		offset = self.pointer_size
 		if self.is_little == False:
 			offset = offset + 3;
 		return offset;
 
 	def read_info_bits(self):
+		logger = Logger.Logger()
 		cfinfo = self.valobj.CreateChildAtOffset("cfinfo",
 					self.offset_of_info_bits(),
 					self.valobj.GetType().GetBasicType(lldb.eBasicTypeChar));
@@ -248,15 +267,18 @@
 	# calculating internal flag bits of the CFString object
 	# this stuff is defined and discussed in CFString.c
 	def is_mutable(self):
+		logger = Logger.Logger()
 		return (self.info_bits & 1) == 1;
 
 	def is_inline(self):
+		logger = Logger.Logger()
 		return (self.info_bits & 0x60) == 0;
 
 	# this flag's name is ambiguous, it turns out
 	# we must skip a length byte to get at the data
 	# when this flag is False
 	def has_explicit_length(self):
+		logger = Logger.Logger()
 		return (self.info_bits & (1 | 4)) != 4;
 
 	# probably a subclass of NSString. obtained this from [str pathExtension]
@@ -264,14 +286,17 @@
 	# in the long run using the isa value might be safer as a way to identify this
 	# instead of reading the info_bits
 	def is_special_case(self):
+		logger = Logger.Logger()
 		return self.info_bits == 0;
 
 	def is_unicode(self):
+		logger = Logger.Logger()
 		return (self.info_bits & 0x10) == 0x10;
 
 	# preparing ourselves to read into memory
 	# by adjusting architecture-specific info
 	def adjust_for_architecture(self):
+		logger = Logger.Logger()
 		self.pointer_size = self.valobj.GetTarget().GetProcess().GetAddressByteSize()
 		self.is_64_bit = self.pointer_size == 8
 		self.is_little = self.valobj.GetTarget().GetProcess().GetByteOrder() == lldb.eByteOrderLittle
@@ -279,6 +304,7 @@
 	# reading info bits out of the CFString and computing
 	# useful values to get at the real data
 	def compute_flags(self):
+		logger = Logger.Logger()
 		self.info_bits = self.read_info_bits();
 		if self.info_bits == None:
 			return;
@@ -289,5 +315,6 @@
 		self.special = self.is_special_case();
 
 	def update(self):
+		logger = Logger.Logger()
 		self.adjust_for_architecture();
-		self.compute_flags();
\ No newline at end of file
+		self.compute_flags();