|Dotfuscator > Understanding Obfuscation with Dotfuscator > Building and Debugging Obfuscated Applications > Debugging Obfuscated Code|
One major drawback of obfuscation is that the task of maintaining and troubleshooting an obfuscated application becomes more difficult. In a well obfuscated application, the names of all types, methods, and fields are changed from their carefully thought out, informative names into meaningless names. This makes using a debugger more difficult, and impacts the usefulness of stack traces sent in from the field.
To solve the debugging problem, Dotfuscator has the ability to output debugging symbol files for obfuscated application that correspond as closely as possible to the original symbol files output by the compiler. Using these files, developers can use a debugger to step through an obfuscated assembly and view the original source code.
To solve the stack trace problem, PreEmptive Solutions provides Lucidator, a standalone tool that translates and decodes stack traces emitted by programs obfuscated with Dotfuscator. Lucidator works by automatically decoding obfuscated stack traces using the renaming map file. Given the obfuscated stack trace, Lucidator replaces the obfuscated names with the original names and displays the results. This same translation ability is built into the Dotfuscator GUI, as well.
Lucidator does not need to be run on the same machine on which Dotfuscator is installed, as long as it has access to the appropriate map file.