def taplog_callback(frame, bp_loc, internal_dict): parameterExpr = objc.functionPreambleExpressionForObjectParameterAtIndex( 0) lldb.debugger.HandleCommand('po [[[%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')
def run(self, arguments, options): parameterExpr = objc.functionPreambleExpressionForObjectParameterAtIndex(0) breakpoint = lldb.debugger.GetSelectedTarget().BreakpointCreateByName("-[UIApplication sendEvent:]") breakpoint.SetCondition('(int)[' + parameterExpr + ' type] == 0 && (int)[[[' + parameterExpr + ' allTouches] anyObject] phase] == 0') breakpoint.SetOneShot(True) lldb.debugger.HandleCommand('breakpoint command add -s python -F "sys.modules[\'' + __name__ + '\'].' + self.__class__.__name__ + '.taplog_callback" ' + str(breakpoint.id)) lldb.debugger.SetAsync(True) lldb.debugger.HandleCommand('continue')
def taplog_callback(frame, bp_loc, internal_dict): parameterExpr = objc.functionPreambleExpressionForObjectParameterAtIndex(0) print( "Gesture Recognizers:\n{}".format( fb.describeObject( "[[[%s allTouches] anyObject] gestureRecognizers]" % (parameterExpr) ) ) ) print( "View:\n{}".format( fb.describeObject( "[[[%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")
def taplog_callback(frame, bp_loc, internal_dict): parameterExpr = objc.functionPreambleExpressionForObjectParameterAtIndex(0) print fb.describeObject('[[[%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')