break; case 'a': Unsafe.debug("<threads: "); Unsafe.debug("\n"); dumpAllThreads(false, null); Unsafe.debug("/>\n"); break; case 'A': Unsafe.debug("<threads: "); Unsafe.debug("\n"); dumpAllThreads(true, architecture.getStackReader()); Unsafe.debug("/>\n");
    private final void processKdbInput(int input) {        switch ((char) input) {        case '?':        case 'h':            Unsafe.debug("Commands:\n");            Unsafe.debug("a   Print all threads\n");            Unsafe.debug("A   Print stacktraces of all threads\n");            Unsafe.debug("l   Show Load/Compile queue\n");            Unsafe.debug("p   Ping\n");            Unsafe.debug("q   Print thread queues\n");            Unsafe.debug("r   Print stacktraces of ready-queue\n");            Unsafe.debug("t   Print current thread\n");            Unsafe.debug("v   Verify thread\n");            Unsafe.debug("w   Print waiting threads\n");            Unsafe.debug("W   Print stacktraces of waiting threads\n");            break;        case 'a':            Unsafe.debug("<threads: ");            Unsafe.debug("\n");            dumpAllThreads(false, null);            Unsafe.debug("/>\n");            break;        case 'A':            Unsafe.debug("<threads: ");            Unsafe.debug("\n");            dumpAllThreads(true, architecture.getStackReader());            Unsafe.debug("/>\n");            break;        case 'l':            Unsafe.debug("<load-compile-service: ");            Unsafe.debug("\n");            LoadCompileService.showInfo();            Unsafe.debug("/>\n");            break;        case 'p':            Unsafe.debug("<ping/>");            break;        case 'q': {            final VmThread currentThread = VmMagic.currentProcessor().currentThread;            Unsafe.debug("<queues: current-thread name='");            Unsafe.debug(currentThread.getName());            Unsafe.debug("' state='");            Unsafe.debug(currentThread.getThreadStateName());            Unsafe.debug("\n");            readyQueue.dump(false, null);            wakeupQueue.dump(false, null);            Unsafe.debug("/>\n");        }            break;        case 'r':            Unsafe.debug("<traces: ");            Unsafe.debug("\n");            readyQueue.dump(true, architecture.getStackReader());            Unsafe.debug("/>\n");            break;        case 'v':            Unsafe.debug("<verify: ");            Unsafe.debug("\n");            verifyThreads();            Unsafe.debug("/>\n");            break;        case 'w':            Unsafe.debug("<waiting: ");            Unsafe.debug("\n");            dumpWaitingThreads(false, null);            Unsafe.debug("/>\n");            break;        case 'W':            Unsafe.debug("<waiting: ");            Unsafe.debug("\n");            dumpWaitingThreads(true, architecture.getStackReader());            Unsafe.debug("/>\n");            break;        case 't': {            final VmThread currentThread = VmMagic.currentProcessor().currentThread;            Unsafe.debug("<currentthread name='");            Unsafe.debug(currentThread.getName());            Unsafe.debug("' state='");            Unsafe.debug(currentThread.getThreadStateName());            Unsafe.debug("'/>\n");        }            break;        case 'T': {            final VmThread currentThread = VmMagic.currentProcessor().currentThread;            Unsafe.debug("<currentthread name='");            Unsafe.debug(currentThread.getName());            Unsafe.debug("' state='");            Unsafe.debug(currentThread.getThreadStateName());            architecture.getStackReader().debugStackTrace(currentThread);            Unsafe.debug("'/>\n");        }            break;        case '#':            Unsafe.debug("Halt for ever\n");            while (true)                ;            // default:            // Unsafe.debug(input);        }    }