Home | History | Annotate | Download | only in retrace
      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 <script type="text/javascript" language="JavaScript">
      9 <!--
     10 if (window.self==window.top)
     11   window.top.location.replace("../../index.html#"+window.location.pathname+window.location.hash);
     12 else {
     13   var hash="#"+window.location.pathname.replace(window.top.location.pathname.replace("index.html", ""), "");
     14   if (window.top.location.hash!=hash)
     15     window.top.location.hash=hash;
     16 }
     17 //-->
     18 </script>
     19 </head>
     20 <body>
     21 
     22 <h2>Introduction</h2>
     23 
     24 <b>ReTrace</b> is a companion tool for <b>ProGuard</b> that 'de-obfuscates'
     25 stack traces.
     26 <p>
     27 When an obfuscated program throws an exception, the resulting stack trace
     28 typically isn't very informative. Class names and method names have been
     29 replaced by short meaningless strings. Source file names and line numbers are
     30 missing altogether. While this may be intentional, it can also be inconvenient
     31 when debugging problems.
     32 <p>
     33 
     34 <table class="diagram" align="center">
     35 
     36 <tr>
     37 <td rowspan="1" class="lightblock">Original code</td>
     38 <td             class="transparentblock">- <b>ProGuard</b> &rarr;</td>
     39 <td rowspan="1" class="lightblock">Obfuscated code</td>
     40 </tr>
     41 
     42 <tr>
     43 <td rowspan="3" class="transparentblock"></td>
     44 <td             class="transparentblock">&darr;</td>
     45 <td             class="transparentblock">&darr;</td>
     46 </tr>
     47 
     48 <tr>
     49 <td             class="whiteblock">Mapping file</td>
     50 <td             class="transparentblock">&darr;</td>
     51 </tr>
     52 
     53 <tr>
     54 <td             class="transparentblock">&darr;</td>
     55 <td             class="transparentblock">&darr;</td>
     56 </tr>
     57 
     58 <tr>
     59 <td             class="whiteblock">Readable stack trace</td>
     60 <td             class="transparentblock">&larr; <b>ReTrace</b> -</td>
     61 <td             class="whiteblock">Obfuscated stack trace</td>
     62 </tr>
     63 
     64 </table>
     65 <p>
     66 ReTrace can read an obfuscated stack trace and restore it to what it would
     67 look like without obfuscation. The restoration is based on the mapping file
     68 that ProGuard can write out during obfuscation. The mapping file links the
     69 original class names and class member names to their obfuscated names.
     70 
     71 <hr />
     72 <noscript><div><a target="_top" href="../../index.html" class="button">Show menu</a></div></noscript>
     73 <address>
     74 Copyright &copy; 2002-2011
     75 <a target="other" href="http://www.lafortune.eu/">Eric Lafortune</a>.
     76 </address>
     77 </body>
     78 </html>
     79 
     80