public String toString() {
		try {
			java.io.StringWriter strw = new java.io.StringWriter();
			TabbedPrintWriter writer = new TabbedPrintWriter(strw);
			writer.println(super.toString() + ": " + addr + "-"
					+ (addr + length));
			if ((GlobalOptions.debuggingFlags & GlobalOptions.DEBUG_INOUT) != 0) {
				writer.println("in: " + in);
			}
			writer.tab();
			block.dumpSource(writer);
			writer.untab();
			if ((GlobalOptions.debuggingFlags & GlobalOptions.DEBUG_INOUT) != 0) {

				Iterator iter = successors.entrySet().iterator();
				while (iter.hasNext()) {
					Map.Entry entry = (Map.Entry) iter.next();
					FlowBlock dest = (FlowBlock) entry.getKey();
					SuccessorInfo info = (SuccessorInfo) entry.getValue();
					writer.println("successor: " + dest.getLabel() + "  gen : "
							+ info.gen + "  kill: " + info.kill);
				}
			}
			return strw.toString();
		} catch (RuntimeException ex) {
			return super.toString() + ": (RUNTIME EXCEPTION)";
		} catch (java.io.IOException ex) {
			return super.toString();
		}
	}