supercat9 wrote:
why did compilers get in the habit of throwing debug information into a .EXE file? When debugging one could just as easily have the information in another file, and when not debugging it's not only useless bloat but it may also undermine any secrets stored within the application.
A lot of development systems (such as Visual Studio) give you a choice (Debug/Release, several switches) about the amount of debug info in an EXE/DLL. They typically use extra files (.PDB) for symbol definitions, and only use source files for showing the current file/function/line. Needing/wanting all these files is fine on the development machine, it is troublesome on other machines where early testing shows some problems (files missing, files out of sync, ...). In .NET more info must be present in the EXE/DLL because of reflection: by default one can interrogate an assembly as to what classes, fields, methods it is holding. Obfuscating hides that information and would disable reflection, except for the names that are specially flagged for this purpose. :)
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips: - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use PRE tags to preserve formatting when showing multi-line code snippets