if ((f != null) && !isStackBottom(f) && (count < limit)) { Unsafe.debug("Corrupted stack!, st.length="); Unsafe.debug(count); Unsafe.debug(" f.magic=");  }
	final VmStackFrame[] getVmStackTrace(Address argFrame, Address ip, int limit) {		final Address frame = argFrame;		Address f = frame;		int count = 0;		while (isValid(f) && (count < limit)) {			count++;			f = getPrevious(f);		}		if ((f != null) && !isStackBottom(f) && (count < limit)) {			Unsafe.debug("Corrupted stack!, st.length=");			Unsafe.debug(count);			Unsafe.debug(" f.magic=");			//Unsafe.die();		}		final VmStackFrame[] stack = new VmStackFrame[count];		f = frame;		for (int i = 0; i < count; i++) {			stack[i] = new VmStackFrame(f, this, ip);			// Subtract 1, because the return address is directly after			// the location where the previous frame was executing.			ip = stack[i].getReturnAddress().add(-1);			f = getPrevious(f);		}		return stack;	}