Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions commands/FBAccessibilityCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,9 @@ def forceStartAccessibilityServer():
if not fb.evaluateBooleanExpression('[UIView instancesRespondToSelector:@selector(_accessibilityElementsInContainer:)]'):
#Starting accessibility server is different for simulator and device
if fb.evaluateExpressionValue('(id)[[UIDevice currentDevice] model]').GetObjectDescription().lower().find('simulator') >= 0:
lldb.debugger.HandleCommand('expr (void)[[UIApplication sharedApplication] accessibilityActivate]')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[[UIApplication sharedApplication] accessibilityActivate]')
else:
lldb.debugger.HandleCommand('expr (void)[[[UIApplication sharedApplication] _accessibilityBundlePrincipalClass] _accessibilityStartServer]')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[[[UIApplication sharedApplication] _accessibilityBundlePrincipalClass] _accessibilityStartServer]')

def accessibilityLabel(view):
#using Apple private API to get real value of accessibility string for element.
Expand Down
6 changes: 3 additions & 3 deletions commands/FBAutoLayoutCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def args(self):
return [ fb.FBCommandArgument(arg='view', type='UIView *', help='The view to print the Auto Layout trace for.', default='(id)[[UIApplication sharedApplication] keyWindow]') ]

def run(self, arguments, options):
lldb.debugger.HandleCommand('po (id)[{} _autolayoutTrace]'.format(arguments[0]))
lldb.debugger.HandleCommand('expr -O -l objc++ -- (id)[{} _autolayoutTrace]'.format(arguments[0]))


def setBorderOnAmbiguousViewRecursive(view, width, color):
Expand All @@ -40,8 +40,8 @@ def setBorderOnAmbiguousViewRecursive(view, width, color):
isAmbiguous = fb.evaluateBooleanExpression('(BOOL)[%s hasAmbiguousLayout]' % view)
if isAmbiguous:
layer = viewHelpers.convertToLayer(view)
lldb.debugger.HandleCommand('expr (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, width))
lldb.debugger.HandleCommand('expr (void)[%s setBorderColor:(CGColorRef)[(id)[UIColor %sColor] CGColor]]' % (layer, color))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, width))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBorderColor:(CGColorRef)[(id)[UIColor %sColor] CGColor]]' % (layer, color))

subviews = fb.evaluateExpression('(id)[%s subviews]' % view)
subviewsCount = int(fb.evaluateExpression('(int)[(id)%s count]' % subviews))
Expand Down
6 changes: 3 additions & 3 deletions commands/FBDisplayCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ def run(self, args, options):
colorClassName = 'NSColor'

layer = viewHelpers.convertToLayer(args[0])
lldb.debugger.HandleCommand('expr (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, options.width))
lldb.debugger.HandleCommand('expr (void)[%s setBorderColor:(CGColorRef)[(id)[%s %sColor] CGColor]]' % (layer, colorClassName, options.color))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, options.width))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBorderColor:(CGColorRef)[(id)[%s %sColor] CGColor]]' % (layer, colorClassName, options.color))
lldb.debugger.HandleCommand('caflush')


Expand All @@ -68,7 +68,7 @@ def args(self):

def run(self, args, options):
layer = viewHelpers.convertToLayer(args[0])
lldb.debugger.HandleCommand('expr (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, 0))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBorderWidth:(CGFloat)%s]' % (layer, 0))
lldb.debugger.HandleCommand('caflush')


Expand Down
2 changes: 1 addition & 1 deletion commands/FBFindCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,6 @@ def run(self, arguments, options):
@staticmethod
def taplog_callback(frame, bp_loc, internal_dict):
parameterExpr = objc.functionPreambleExpressionForObjectParameterAtIndex(0)
lldb.debugger.HandleCommand('po [[[%s allTouches] anyObject] view]' % (parameterExpr))
lldb.debugger.HandleCommand('expr -O -l objc++ -- [[[%s allTouches] anyObject] view]' % (parameterExpr))
# We don't want to proceed event (click on button for example), so we just skip it
lldb.debugger.HandleCommand('thread return')
4 changes: 2 additions & 2 deletions commands/FBFlickerCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ def inputCallback(self, input):
if isMac:
recursionName = '_subtreeDescription'

lldb.debugger.HandleCommand('po [(id)' + oldView + ' ' + recusionName + ']')
lldb.debugger.HandleCommand('expr -O -l objc++ -- [(id)' + oldView + ' ' + recusionName + ']')
else:
print '\nI really have no idea what you meant by \'' + input + '\'... =\\\n'

Expand All @@ -123,7 +123,7 @@ def inputCallback(self, input):
def setCurrentView(self, view):
if view:
self.currentView = view
lldb.debugger.HandleCommand('po (id)' + view)
lldb.debugger.HandleCommand('expr -O -l objc++ -- (id)' + view)

def superviewOfView(view):
superview = fb.evaluateObjectExpression('[' + view + ' superview]')
Expand Down
4 changes: 2 additions & 2 deletions commands/FBInvocationCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,8 +120,8 @@ def prettyPrintInvocation(frame, invocation):
for argDescription in argDescriptions:
s = re.sub(r'argument [0-9]+: ', '', argDescription)

lldb.debugger.HandleCommand('expr void *$v')
lldb.debugger.HandleCommand('expr (void)[' + invocation + ' getArgument:&$v atIndex:' + str(index) + ']')
lldb.debugger.HandleCommand('expr -l objc++ -- void *$v')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[' + invocation + ' getArgument:&$v atIndex:' + str(index) + ']')

address = findArgAdressAtIndexFromStackFrame(frame, index)

Expand Down
4 changes: 2 additions & 2 deletions commands/FBPrintCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ def description(self):
return 'Print layer tree from the perspective of the render server.'

def run(self, arguments, options):
lldb.debugger.HandleCommand('po [NSString stringWithCString:(char *)CARenderServerGetInfo(0, 2, 0)]')
lldb.debugger.HandleCommand('expr -O -l objc++ -- [NSString stringWithCString:(char *)CARenderServerGetInfo(0, 2, 0)]')


class FBPrintViewControllerHierarchyCommand(fb.FBCommand):
Expand All @@ -104,7 +104,7 @@ def run(self, arguments, options):

if arguments[0] == '__keyWindow_rootVC_dynamic__':
if fb.evaluateBooleanExpression('[UIViewController respondsToSelector:@selector(_printHierarchy)]'):
lldb.debugger.HandleCommand('po [UIViewController _printHierarchy]')
lldb.debugger.HandleCommand('expr -O -l objc++ -- [UIViewController _printHierarchy]')
return

arguments[0] = '(id)[(id)[[UIApplication sharedApplication] keyWindow] rootViewController]'
Expand Down
8 changes: 4 additions & 4 deletions commands/FBVisualizationCommands.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ def _showImage(commandForImage):
def _showLayer(layer):
layer = '(' + layer + ')'

lldb.debugger.HandleCommand('expr (void)UIGraphicsBeginImageContextWithOptions(((CGRect)[(id)' + layer + ' bounds]).size, NO, 0.0)')
lldb.debugger.HandleCommand('expr (void)[(id)' + layer + ' renderInContext:(void *)UIGraphicsGetCurrentContext()]')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)UIGraphicsBeginImageContextWithOptions(((CGRect)[(id)' + layer + ' bounds]).size, NO, 0.0)')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[(id)' + layer + ' renderInContext:(void *)UIGraphicsGetCurrentContext()]')

frame = lldb.debugger.GetSelectedTarget().GetProcess().GetSelectedThread().GetSelectedFrame()
result = frame.EvaluateExpression('(UIImage *)UIGraphicsGetImageFromCurrentImageContext()')
Expand All @@ -70,7 +70,7 @@ def _showLayer(layer):
image = result.GetValue()
_showImage(image)

lldb.debugger.HandleCommand('expr (void)UIGraphicsEndImageContext()')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)UIGraphicsEndImageContext()')

def _dataIsImage(data):
data = '(' + data + ')'
Expand Down Expand Up @@ -118,7 +118,7 @@ def _visualize(target):
if _dataIsImage(target):
_showImage('(id)[UIImage imageWithData:' + target + ']')
elif _dataIsString(target):
lldb.debugger.HandleCommand('po (NSString*)[[NSString alloc] initWithData:' + target + ' encoding:4]')
lldb.debugger.HandleCommand('expr -O -l objc++ -- (NSString*)[[NSString alloc] initWithData:' + target + ' encoding:4]')
else:
print 'Data isn\'t an image and isn\'t a string.'
else:
Expand Down
14 changes: 7 additions & 7 deletions fblldbviewhelpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
import fblldbbase as fb

def flushCoreAnimationTransaction():
lldb.debugger.HandleCommand('expr (void)[CATransaction flush]')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[CATransaction flush]')

def setViewHidden(object, hidden):
lldb.debugger.HandleCommand('expr (void)[' + object + ' setHidden:' + str(int(hidden)) + ']')
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[' + object + ' setHidden:' + str(int(hidden)) + ']')
flushCoreAnimationTransaction()

def maskView(viewOrLayer, color, alpha):
Expand All @@ -30,16 +30,16 @@ def maskView(viewOrLayer, color, alpha):
size.GetChildMemberWithName('height').GetValue())
mask = fb.evaluateExpression('(id)[[UIView alloc] initWithFrame:%s]' % rectExpr)

lldb.debugger.HandleCommand('expr (void)[%s setTag:(NSInteger)%s]' % (mask, viewOrLayer))
lldb.debugger.HandleCommand('expr (void)[%s setBackgroundColor:[UIColor %sColor]]' % (mask, color))
lldb.debugger.HandleCommand('expr (void)[%s setAlpha:(CGFloat)%s]' % (mask, alpha))
lldb.debugger.HandleCommand('expr (void)[%s addSubview:%s]' % (window, mask))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setTag:(NSInteger)%s]' % (mask, viewOrLayer))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setBackgroundColor:[UIColor %sColor]]' % (mask, color))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s setAlpha:(CGFloat)%s]' % (mask, alpha))
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s addSubview:%s]' % (window, mask))
flushCoreAnimationTransaction()

def unmaskView(viewOrLayer):
window = fb.evaluateExpression('(UIWindow *)[[UIApplication sharedApplication] keyWindow]')
mask = fb.evaluateExpression('(UIView *)[%s viewWithTag:(NSInteger)%s]' % (window, viewOrLayer))
lldb.debugger.HandleCommand('expr (void)[%s removeFromSuperview]' % mask)
lldb.debugger.HandleCommand('expr -l objc++ -- (void)[%s removeFromSuperview]' % mask)
flushCoreAnimationTransaction()

def convertPoint(x, y, fromViewOrLayer, toViewOrLayer):
Expand Down