void trace() {
String trace() {
void trace() {    String f = this.tfmt();			// trace format    StringBuffer b = new StringBuffer();	// output buffer    b.append("   ");				// start with three blanks    for (int i = 0; i < f.length(); i++) {	// scan format	char c = f.charAt(i);	if (c == '$') {				// if $x	    c = f.charAt(++i);			// get x	    if (c == '0') {			// $0: proc/func name		String s = this.getClass().getName();		if (s.charAt(1) == '$') {	// should be [pf]$xxxxx format		    b.append(s.substring(2));		} else {			// no, use full class name		    b.append(s);		}	    } else if (c > '0' && c <= '9') {	// $n: one arg		b.append(getarg((int)c - '1'));	    } else if (c == '*') {		// $*: all ags, comma-separated		if (arguments.length > 0) {		    b.append(getarg(0));		    for (int j = 1; j < arguments.length; j++) {			b.append(',').append(getarg(j));		    }		}	    } else {		b.append(c);			// $<unknown>: just copy	    }	} else {	    b.append(c);			// not $; use as is	}    }    System.err.println(b);}