code: 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:     # 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
docs: p - step on the current assembly instruction
          next - step on the current assembly instruction
          step - step on the current assembly instruction