def do_reload(self, args): "reload name: reload a simulation instance" if not args: return print_red('Usage: reload name') if args not in self.__contexts: return print_red('No instance named "%s"' % args) p = self.__contexts[args].get_program_path() self.__contexts[args] = SolverSimContext(p, self.__verbose) if args == self.__curr_ctx.get_program_name(): self.__curr_ctx = self.__contexts[args]
def do_load(self, args): "load file [name]: load a program from file" if not args: return print_red('No program specified') s = args.split() if len(s) > 2: return print_red('Usage: load file [name]') program, name = s[0], s[1] if len(s) == 2 else None try: self.__curr_ctx = SolverSimContext(program, self.__verbose) if not name: name = self.__curr_ctx.get_program_name() self.__contexts[name] = self.__curr_ctx SolverDbgShell.prompt = '[%s] >> ' % name except IOError: print_red('Cannot open %s' % str(program))
def __init__(self, program=None): BaseShell.__init__(self) self.add_alias('restart', 'reset') self.add_alias('break', 'breakpoint') self.add_alias('b', 'breakpoint') self.add_alias('ctx', 'context') self.add_alias('mem', 'memory') self.__contexts = {} self.__curr_ctx = None self.__verbose = False self.__trace = False if program: self.__curr_ctx = SolverSimContext(program) self.__curr_ctx.load_program(program) self.__curr_ctx.set_verbose(self.__verbose)