introduction.html revision b72c5c2e5482cf10117b2b25f642f7616b2326c3
1<!doctype html PUBLIC "-//W3C//DTD HTML 3.2 Final//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<h2>Introduction</h2>
12
13<b>ReTrace</b> is a companion tool for <b>ProGuard</b> that 'de-obfuscates'
14stack traces.
15<p>
16When an obfuscated program throws an exception, the resulting stack trace
17typically isn't very informative. Class names and method names have been
18replaced by short meaningless strings. Source file names and line numbers are
19missing altogether. While this may be intentional, it can also be inconvenient
20when debugging problems.
21<p>
22
23<table class="diagram" align="center">
24
25<tr>
26<td rowspan="1" class="lightblock">Original code</td>
27<td             class="transparentblock">- <b>ProGuard</b> &rarr;</td>
28<td rowspan="1" class="lightblock">Obfuscated code</td>
29</tr>
30
31<tr>
32<td rowspan="3" class="transparentblock"></td>
33<td             class="transparentblock">&darr;</td>
34<td             class="transparentblock">&darr;</td>
35</tr>
36
37<tr>
38<td             class="whiteblock">Mapping file</td>
39<td             class="transparentblock">&darr;</td>
40</tr>
41
42<tr>
43<td             class="transparentblock">&darr;</td>
44<td             class="transparentblock">&darr;</td>
45</tr>
46
47<tr>
48<td             class="whiteblock">Readable stack trace</td>
49<td             class="transparentblock">&larr; <b>ReTrace</b> -</td>
50<td             class="whiteblock">Obfuscated stack trace</td>
51</tr>
52
53</table>
54<p>
55ReTrace can read an obfuscated stack trace and restore it to what it would
56look like without obfuscation. The restoration is based on the mapping file
57that ProGuard can write out during obfuscation. The mapping file links the
58original class names and class member names to their obfuscated names.
59<p>
60
61<hr>
62<address>
63Copyright &copy; 2002-2009
64<a href="http://www.graphics.cornell.edu/~eric/">Eric Lafortune</a>.
65</address>
66</body>
67</html>
68
69