void fdump(int _depth, Instruction i, boolean clone) {
      final String label = i.getByteCode().getName();// InstructionHelper.getLabel(i, false, false, false);

      if (i instanceof CloneInstruction) {
         fdump(_depth, ((CloneInstruction) i).getReal(), true);
      } else {
         if (_depth == 0) {
            if (i.producesStack()) {
               System.out.print("  ");
            } else {
               System.out.print("! ");
            }
         }

         if (clone) {
            System.out.print("*");
         } else if (_depth == 0) {
            System.out.print(" ");
         }
         System.out.print(i.getThisPC() + ":" + label);
      }
      if (i.getFirstChild() != null) {
         // int child=0;
         System.out.print("{");
         boolean comma = false;
         for (Instruction ii = i.getFirstChild(); ii != null; ii = ii.getNextExpr()) {
            if (comma) {
               System.out.print(" ,");
            }
            // System.out.print("<"+child+">");
            fdump(_depth + 1, ii, false);
            comma = true;
            //  child++;
         }
         System.out.print("}");
      }
   }