R8 retrace

R8 retrace is a tool for obtaining the original stack trace from an obfuscated stack trace. The stack trace is reconstructed by matching class and method names in a mapping file to their original definitions.


To retrace an obfuscated stack trace, pass the mapping file to retrace:

retrace  path-to-mapping-file [path-to-stack-trace-file] [options] 

If no stack trace file is given on the command line, R8 retrace waits for the stack trace to be entered by the user through standard input. After input, terminate the input stream:

  • Linux, macOS: Control+D
  • Windows: Control+Z+Enter

The retraced output is then written to standard output.


The following table describes the command-line options of R8 retrace:

Option Required? Description
--verbose no Prints more information, such as method parameters and method return type.
--info no Sets the diagnostic level to info. For a more in-depth look, refer to DiagnosticsHandler.
--quiet no Reduces the amount of information printed to increase focus.
--regex <regular_exp> no Overwrites the default regular expression for parsing stack trace lines. For example, the following is a regex that can parse basic stack traces:

(?:.*? at %c\.%m\(%s(?::%l)?\))|(?:(?:.*?[:"] +)?%c(?::.*)?).

Usage notes

R8 retrace uses a generated mapping file for mapping obfuscated class and method names back to the original definition. For more information about shrinking your app so that it can be retraced correctly, see Decode an obfuscated stack trace.