Debugging options

Several debug options are available. These are meant to debug Externalizer4J itself: enable this when Externalizer4J crashes for instance. To get more information about the optimization performed by Externalizer4J please take a look at the explain and explainDetails options described in the basic options.

Verify bytecode

#
# Debugging related settings below
#
#
# Verify the generated bytecode. Used for debugging purposes
#
# default: false
# verify=true

When set to true an additional pass is added to the bytecode generation to validate it. Enable this option is the generated code crashes at runtime. Usually this will be in the form of an error reported by the JVM’s bytecode verifier.

Debug

#
# Display the generated bytecode. Used for debugging purposes
#
# default: false
# debug=false

A development oriented debug option where the generated bytecode it displayed. This option will only display the bytecode that gets generated by Externalizer4J. If a class does not get optimized then its bytecode will not be displayed

Dump debugging information

#
# Dumps the information used for the optimization to file. The file contains xml and is meant to be readable (with some
# effort). In case of problems or bugs this file can thus be inspected before sending it to us to help analyzing the
# problem at hand more quickly.
#
# The dump gets generated after a the optimization or upon an uncaught exception
#
# The xml contains NO logic only class and field names as well as the settings used for the optimization. If desired one
# can perform a simple string replacement to hide the actual package, class and field names.
#
# default: false
# dumpDebugInformation=true

This option will generate text files (contains xml) at the end of the execution or upon a crash of Externalizer4J. The location of the dump file is displayed once it is saved. The information in this file includes :

  • the name of the class files being optimized
  • the options set in the externalizer4j.properties files
  • the classpath used to compile the classes which get optimized
    • This is the classpath as seen by the maven plugin, ant task or IntelliJ module depending on the tool you use
    • This NOT the classpath of Externalizer4J itself!

IMPORTANT: disable this option when it is no longer needed. These dump files can be rather large and take some time to generate.