diff --git a/commands/FBAccessibilityCommands.py b/commands/FBAccessibilityCommands.py index 05e3c69..5da5d10 100644 --- a/commands/FBAccessibilityCommands.py +++ b/commands/FBAccessibilityCommands.py @@ -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. diff --git a/commands/FBAutoLayoutCommands.py b/commands/FBAutoLayoutCommands.py index 5510d2b..b256ec5 100644 --- a/commands/FBAutoLayoutCommands.py +++ b/commands/FBAutoLayoutCommands.py @@ -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): @@ -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)) diff --git a/commands/FBDisplayCommands.py b/commands/FBDisplayCommands.py index bd2b6ea..23fec87 100644 --- a/commands/FBDisplayCommands.py +++ b/commands/FBDisplayCommands.py @@ -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') @@ -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') diff --git a/commands/FBFindCommands.py b/commands/FBFindCommands.py index f2b7fda..4b4bd99 100644 --- a/commands/FBFindCommands.py +++ b/commands/FBFindCommands.py @@ -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') diff --git a/commands/FBFlickerCommands.py b/commands/FBFlickerCommands.py index 85b3913..4d766ac 100644 --- a/commands/FBFlickerCommands.py +++ b/commands/FBFlickerCommands.py @@ -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' @@ -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]') diff --git a/commands/FBInvocationCommands.py b/commands/FBInvocationCommands.py index a7448c6..1168438 100644 --- a/commands/FBInvocationCommands.py +++ b/commands/FBInvocationCommands.py @@ -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) diff --git a/commands/FBPrintCommands.py b/commands/FBPrintCommands.py index b9907c9..4a2dfdb 100644 --- a/commands/FBPrintCommands.py +++ b/commands/FBPrintCommands.py @@ -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): @@ -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]' diff --git a/commands/FBVisualizationCommands.py b/commands/FBVisualizationCommands.py index da90fe3..d5478a0 100755 --- a/commands/FBVisualizationCommands.py +++ b/commands/FBVisualizationCommands.py @@ -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()') @@ -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 + ')' @@ -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: diff --git a/fblldbviewhelpers.py b/fblldbviewhelpers.py index 6e46aed..321dfdd 100644 --- a/fblldbviewhelpers.py +++ b/fblldbviewhelpers.py @@ -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): @@ -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):