1<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
5<meta http-equiv="content-style-type" content="text/css">
6<link rel="stylesheet" type="text/css" href="../style.css">
7<title>ReTrace Introduction</title>
8</head>
9<body>
10
11<script type="text/javascript" language="JavaScript">
12<!--
13if (window.self==window.top)
14  document.write('<a class="largebutton" target="_top" href="../../index.html#manual/retrace/introduction.html">ProGuard index</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/dexguard">DexGuard</a> <a class="largebutton" target="_top" href="http://www.saikoa.com/">Saikoa</a> <a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>')
15//-->
16</script>
17<noscript>
18<a class="largebutton" target="_top"  href="../../index.html#manual/retrace/introduction.html">ProGuard index</a>
19<a class="largebutton" target="_top"  href="http://www.saikoa.com/dexguard">DexGuard</a>
20<a class="largebutton" target="_top"  href="http://www.saikoa.com/">Saikoa</a>
21<a class="largebutton" target="other" href="http://sourceforge.net/projects/proguard/">Sourceforge</a>
22</noscript>
23
24<h2>Introduction</h2>
25
26<b>ReTrace</b> is a companion tool for <b>ProGuard</b> that 'de-obfuscates'
27stack traces.
28<p>
29When an obfuscated program throws an exception, the resulting stack trace
30typically isn't very informative. Class names and method names have been
31replaced by short meaningless strings. Source file names and line numbers are
32missing altogether. While this may be intentional, it can also be inconvenient
33when debugging problems.
34<p>
35
36<table class="diagram" align="center">
37
38<tr>
39<td rowspan="1" class="lightblock">Original code</td>
40<td             class="transparentblock">- <b>ProGuard</b> &rarr;</td>
41<td rowspan="1" class="lightblock">Obfuscated code</td>
42</tr>
43
44<tr>
45<td rowspan="3" class="transparentblock"></td>
46<td             class="transparentblock">&darr;</td>
47<td             class="transparentblock">&darr;</td>
48</tr>
49
50<tr>
51<td             class="whiteblock">Mapping file</td>
52<td             class="transparentblock">&darr;</td>
53</tr>
54
55<tr>
56<td             class="transparentblock">&darr;</td>
57<td             class="transparentblock">&darr;</td>
58</tr>
59
60<tr>
61<td             class="whiteblock">Readable stack trace</td>
62<td             class="transparentblock">&larr; <b>ReTrace</b> -</td>
63<td             class="whiteblock">Obfuscated stack trace</td>
64</tr>
65
66</table>
67<p>
68ReTrace can read an obfuscated stack trace and restore it to what it would
69look like without obfuscation. The restoration is based on the mapping file
70that ProGuard can write out during obfuscation. The mapping file links the
71original class names and class member names to their obfuscated names.
72
73<hr />
74<address>
75Copyright &copy; 2002-2014
76<a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a> @ <a target="top" href="http://www.saikoa.com/">Saikoa</a>.
77</address>
78</body>
79</html>
80
81