/** * Create the VMThrowable * * @return constructed VMThrowable */ static VMThrowable fillInStackTrace(Throwable parent) { if (!VM.fullyBooted) { return null; } else if (RVMThread.getCurrentThread().isCollectorThread()) { VM.sysWriteln("Exception in GC thread"); RVMThread.dumpVirtualMachine(); return null; } try { StackTrace stackTrace = new StackTrace(); return new VMThrowable(stackTrace); } catch (OutOfMemoryError oome) { return null; } catch (Throwable t) { VM.sysFail( "VMThrowable.fillInStackTrace(): Cannot fill in a stack trace; got a weird Throwable when I tried to"); return null; } }
/** * Dump all threads & their stacks starting at the frame identified by the threads saved * contextRegisters (ip & fp fields). */ @Uninterruptible public static void dumpAllThreadStacks() { RVMThread.dumpVirtualMachine(); } // dumpAllThreadStacks