def do_step(self, arg):
        """
        p - step on the current assembly instruction
        next - step on the current assembly instruction
        step - step on the current assembly instruction
        """
        if self.cmdprefix:
            raise CmdError("prefix not allowed")
        if self.lastEvent is None:
            raise CmdError("no current process set")
        if arg:     # XXX this check is to be removed
            raise CmdError("too many arguments")
        pid     = self.lastEvent.get_pid()
        thread  = self.lastEvent.get_thread()
        pc      = thread.get_pc()
        code    = thread.disassemble(pc, 16)[0]
        size    = code[1]
        opcode  = code[2].lower()
        if ' ' in opcode:
            opcode  = opcode[ : opcode.find(' ') ]
        if opcode in self.jump_instructions or opcode in ('int', 'ret', 'retn'):
            return self.do_trace(arg)
        address = pc + size
##        print(hex(pc), hex(address), size   # XXX DEBUG
        self.debug.stalk_at(pid, address)
        return True
def do_step ( self , arg ) : if self . cmdprefix : raise CmdError ( "prefix not allowed" ) if self . lastEvent is None : raise CmdError ( "no current process set" ) if arg : raise CmdError ( "too many arguments" ) pid = self . lastEvent . get_pid ( ) thread = self . lastEvent . get_thread ( ) pc = thread . get_pc ( ) code = thread . disassemble ( pc , 16 ) [ 0 ] size = code [ 1 ] opcode = code [ 2 ] . lower ( ) if ' ' in opcode : opcode = opcode [ : opcode . find ( ' ' ) ] if opcode in self . jump_instructions or opcode in ( 'int' , 'ret' , 'retn' ) : return self . do_trace ( arg ) address = pc + size self . debug . stalk_at ( pid , address ) return True
p - step on the current assembly instruction
        next - step on the current assembly instruction
        step - step on the current assembly instruction