in fbchisellldbviewhelpers.py [0:0]
def upwardsRecursiveDescription(view, maxDepth=0):
if not fb.evaluateBooleanExpression(
"[(id)%s isKindOfClass:(Class)[UIView class]]" % view
) and not fb.evaluateBooleanExpression(
"[(id)%s isKindOfClass:(Class)[NSView class]]" % view
):
return None
currentView = view
recursiveDescription = []
depth = 0
while currentView and (maxDepth <= 0 or depth <= maxDepth):
depth += 1
viewDescription = fb.evaluateExpressionValue(
"(id)[%s debugDescription]" % (currentView)
).GetObjectDescription()
currentView = fb.evaluateExpression("(void*)[%s superview]" % (currentView))
try:
if int(currentView, 0) == 0:
currentView = None
except Exception:
currentView = None
if viewDescription:
recursiveDescription.insert(0, viewDescription)
if not len(viewDescription):
return None
currentPrefix = ""
builder = ""
for viewDescription in recursiveDescription:
builder += currentPrefix + viewDescription + "\n"
currentPrefix += " | "
return builder