Some options can be given on the mvn command line to control whether
debugging information is included in the built files, or omitted to save
space at the cost of making use of a debugger less practical. It is also
possible to tailor how aggressively the C compiler will optimize the
native-code portion of PL/Java.
-Dmaven.compiler.debug= with a value of true or false can be given on
the mvn command line. If true, debugging information is included so a
runtime debugger (jdb, Eclipse, etc.) can see local variables, source lines,
etc. The default is true.
-Dso.debug= with a value of true or false on the mvn command line
will control whether debugging information is included in PL/Java's native
code shared object. This is most useful when developing PL/Java itself, or,
perhaps, troubleshooting a low-level issue. The default is false.
Although it is not required, debugging of PL/Java's native code can be
more comfortable when the PostgreSQL server in use was also configured
and built with --enable-debug.
PL/Java used to support a -Dso.optimize option earlier. However, it is not
yet implemented in the current build system. Following is the description
of how the option worked when it was supported.
-Dso.optimize= can be given on the mvn command line, with a value
chosen from none, size, speed, minimal, full, aggressive,
extreme, or unsafe. Depending on the compiler, these settings may
not all be distinct optimization levels. The default is none.
Because none has long been the default, PL/Java has not seen extensive
testing at higher optimization levels, which should, therefore, be considered
experimental. Before reporting an issue, please make sure it is reproducible
with no optimization.