1 21 package proguard.retrace; 22 23 import java.io.*; 24 25 import proguard.obfuscate.MappingReader; 26 27 28 34 public class ReTrace 35 { 36 private static final String VERBOSE_OPTION = "-verbose"; 37 38 39 private boolean verbose; 41 private File mappingFile; 42 private File stackTraceFile; 43 44 45 52 public ReTrace(boolean verbose, 53 File mappingFile) 54 { 55 this(verbose, mappingFile, null); 56 } 57 58 59 68 public ReTrace(boolean verbose, 69 File mappingFile, 70 File stackTraceFile) 71 { 72 this.verbose = verbose; 73 this.mappingFile = mappingFile; 74 this.stackTraceFile = stackTraceFile; 75 } 76 77 78 81 public void execute() throws IOException 82 { 83 StackTrace stackTrace = new StackTrace(verbose); 84 MappingReader reader = new MappingReader(mappingFile); 85 86 stackTrace.read(stackTraceFile); 88 89 reader.pump(stackTrace); 91 92 stackTrace.print(); 94 } 95 96 97 100 public static void main(String [] args) 101 { 102 if (args.length < 1) 103 { 104 System.err.println("Usage: java proguard.ReTrace [-verbose] <mapping_file> [<stacktrace_file>]"); 105 System.exit(-1); 106 } 107 108 int argumentIndex = 0; 109 110 boolean verbose = false; 111 if (args[argumentIndex].equals(VERBOSE_OPTION)) 112 { 113 verbose = true; 114 argumentIndex++; 115 116 if (args.length < 2) 117 { 118 System.err.println("Usage: java proguard.ReTrace [-verbose] <mapping_file> [<stacktrace_file>]"); 119 System.exit(-1); 120 } 121 } 122 123 File mappingFile = new File(args[argumentIndex++]); 124 File stackTraceFile = argumentIndex < args.length ? 125 new File(args[argumentIndex++]) : 126 null; 127 128 ReTrace reTrace = new ReTrace(verbose, mappingFile, stackTraceFile); 129 130 try 131 { 132 reTrace.execute(); 134 } 135 catch (IOException ex) 136 { 137 if (verbose) 138 { 139 ex.printStackTrace(); 141 } 142 else 143 { 144 System.err.println("Error: "+ex.getMessage()); 146 } 147 148 System.exit(1); 149 } 150 151 System.exit(0); 152 } 153 } 154 | Popular Tags |