boolean useSysWrite = false;
boolean useSysWrite = true || VM.stackTraceVMSysWrite;
  public void printStackTrace () {    //    static boolean ranOut = false;    boolean useSysWrite = false;    if (VM.stackTraceVMSysWrite) {      useSysWrite = true;    } else if (this instanceof OutOfMemoryError) {      tallyOutOfMemoryError();      VM.sysWriteln("Throwable.printStackTrace(): We are trying to dump the stack of an OutOfMemoryError.");      VM.sysWriteln("Throwable.printStackTrace():  We'll use the VM.sysWriteln() function,");      VM.sysWriteln("Throwable.printStackTrace():  instead of the System.err stream, to avoid trouble.");      useSysWrite = true;    } else if (System.err == null) {      VM.sysWriteln("Throwable.printStackTrace(): Can't write to the uninitialized System.err stream;");      VM.sysWriteln("Throwable.printStackTrace():  it's early in booting.  Reverting to VM.sysWriteln().");      useSysWrite = true;    }    if (useSysWrite) {      PrintLN pln;      try {	pln = new PrintContainer.VMSysWriteln();      } catch (OutOfMemoryError oom) {	tallyOutOfMemoryError();	VM.sysWriteln("Throwable.printStackTrace(): Out of memory while trying to allocate a simple 'PrintContainer.VMSysWriteln' object to print the trace.  Giving up.");	return;      } catch (Throwable dummy) {	this.tallyWeirdError();	VM.sysWriteln("Throwable.printStackTrace(PrintLN) caught an unexpected exception while allocating a simple 'PrintContainer.VMSysWriteln' object to print a stack trace.  Giving up.");	return;      }      // We will catch any other exceptions deeper down the call stack.      printStackTrace(pln);    } else { // Not using sysWrite      // We will catch other exceptions deeper down the call stack.      printStackTrace(System.err);    }  }