proguard.retrace
Class ReTrace

java.lang.Object
  extended by proguard.retrace.ReTrace
All Implemented Interfaces:
MappingProcessor

public class ReTrace
extends java.lang.Object
implements MappingProcessor

Tool for de-obfuscating stack traces of applications that were obfuscated with ProGuard.


Field Summary
static java.lang.String STACK_TRACE_EXPRESSION
           
 
Constructor Summary
ReTrace(java.lang.String regularExpression, boolean verbose, java.io.File mappingFile)
          Creates a new ReTrace object to process stack traces on the standard input, based on the given mapping file name.
ReTrace(java.lang.String regularExpression, boolean verbose, java.io.File mappingFile, java.io.File stackTraceFile)
          Creates a new ReTrace object to process a stack trace from the given file, based on the given mapping file name.
 
Method Summary
 void execute()
          Performs the subsequent ReTrace operations.
static void main(java.lang.String[] args)
          The main program for ReTrace.
 boolean processClassMapping(java.lang.String className, java.lang.String newClassName)
          Processes the given class name mapping.
 void processFieldMapping(java.lang.String className, java.lang.String fieldType, java.lang.String fieldName, java.lang.String newFieldName)
          Processes the given field name mapping.
 void processMethodMapping(java.lang.String className, int firstLineNumber, int lastLineNumber, java.lang.String methodReturnType, java.lang.String methodName, java.lang.String methodArguments, java.lang.String newMethodName)
          Processes the given method name mapping.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STACK_TRACE_EXPRESSION

public static final java.lang.String STACK_TRACE_EXPRESSION
See Also:
Constant Field Values
Constructor Detail

ReTrace

public ReTrace(java.lang.String regularExpression,
               boolean verbose,
               java.io.File mappingFile)
Creates a new ReTrace object to process stack traces on the standard input, based on the given mapping file name.

Parameters:
regularExpression - the regular expression for parsing the lines in the stack trace.
verbose - specifies whether the de-obfuscated stack trace should be verbose.
mappingFile - the mapping file that was written out by ProGuard.

ReTrace

public ReTrace(java.lang.String regularExpression,
               boolean verbose,
               java.io.File mappingFile,
               java.io.File stackTraceFile)
Creates a new ReTrace object to process a stack trace from the given file, based on the given mapping file name.

Parameters:
regularExpression - the regular expression for parsing the lines in the stack trace.
verbose - specifies whether the de-obfuscated stack trace should be verbose.
mappingFile - the mapping file that was written out by ProGuard.
stackTraceFile - the optional name of the file that contains the stack trace.
Method Detail

execute

public void execute()
             throws java.io.IOException
Performs the subsequent ReTrace operations.

Throws:
java.io.IOException

processClassMapping

public boolean processClassMapping(java.lang.String className,
                                   java.lang.String newClassName)
Description copied from interface: MappingProcessor
Processes the given class name mapping.

Specified by:
processClassMapping in interface MappingProcessor
Parameters:
className - the original class name.
newClassName - the new class name.
Returns:
whether the processor is interested in receiving mappings of the class members of this class.

processFieldMapping

public void processFieldMapping(java.lang.String className,
                                java.lang.String fieldType,
                                java.lang.String fieldName,
                                java.lang.String newFieldName)
Description copied from interface: MappingProcessor
Processes the given field name mapping.

Specified by:
processFieldMapping in interface MappingProcessor
Parameters:
className - the original class name.
fieldType - the original external field type.
fieldName - the original field name.
newFieldName - the new field name.

processMethodMapping

public void processMethodMapping(java.lang.String className,
                                 int firstLineNumber,
                                 int lastLineNumber,
                                 java.lang.String methodReturnType,
                                 java.lang.String methodName,
                                 java.lang.String methodArguments,
                                 java.lang.String newMethodName)
Description copied from interface: MappingProcessor
Processes the given method name mapping.

Specified by:
processMethodMapping in interface MappingProcessor
Parameters:
className - the original class name.
firstLineNumber - the first line number of the method, or 0 if it is not known.
lastLineNumber - the last line number of the method, or 0 if it is not known.
methodReturnType - the original external method return type.
methodName - the original external method name.
methodArguments - the original external method arguments.
newMethodName - the new method name.

main

public static void main(java.lang.String[] args)
The main program for ReTrace.