import sys import __main__ import re class Tracer: def __init__( self, filename ): __main__.__dict__.clear() __main__.__dict__.update( { "__name__": "__main__", "__file__": filename, "__builtins__": __builtins__, } ) with open( filename, "rb" ) as file: code = compile( file.read(), filename, 'exec') sys.settrace( self.trace ) exec( code, __main__.__dict__ ) def trace( self, frame, event, arg ): filename = frame.f_code.co_filename line = frame.f_lineno prompt = event + " -> " + filename + "(" + str( line ) + "):" action = input( prompt ) tokens = re.split( " +", action ) if tokens[ 0 ] == "jump": frame.f_lineno = int( tokens[ 1 ] ) return self.trace def run(): filename = "C:\\Users\\hussain.bohra\\Desktop\\Backup Files\\test.py" Tracer( filename )