IBM AIX JVM Debugs



JVM command-line options in IBM AIX JVM



  •   -Xaggressive  (AIX 32-bit, Linux PPC32 and Windows 64-bit only) Enable performance optimization's that are expected to be the default in future releases.
  •    -Xargencoding  You can put Unicode escape sequences in the argument list. This option is set to off by default.
  •  -Xbootclasspath:<directories and compressed or Java archive files separated by : (; on Windows)>  Sets the search path for bootstrap classes and resources. The default is to search for bootstrap classes and resources in the internal VM directories and .jar files.
  • -Xbootclasspath/a:<directories and compressed or Java archive files separated by : (; on Windows)> Appends the specified directories, compressed files, or jar files to the end of the bootstrap class path. The default is to search for bootstrap classes and resources in the internal VM directories and .jar files
  • -Xbootclasspath/p:<directories and compressed or Java archive files separated by : (; on Windows)> Adds a prefix of the specified directories, compressed files, or Java archive files to the front of the bootstrap class path. Do not deploy applications that use the -Xbootclasspath: or the -Xbootclasspath/p: option to override a class in the standard API. The reason is that such a deployment contravenes the Java 2 Runtime Environment binary code license. The default is to search for bootstrap classes and resources in the internal VM directories and .jar files.
  • -Xcheck:classpath Displays a warning message if an error is discovered in the class path; for example, a missing directory or JAR file.
  • -Xcheck:gc[:<scan options>][:<verify options>][:<misc options>]  Performs additional checks on garbage collection. By default, no checking is performed. See the output of -Xcheck:gc:help for more information.
  • -Xcheck:jni[:help][:<option>=<value>] Performs additional checks for JNI functions. This option is equivalent to -Xrunjnichk. By default, no checking is performed.
  • -Xcheck:memory[:<option>] Identifies memory leaks inside the JVM using strict checks that cause the JVM to exit on failure. If no option is specified, all is used by default.
  • -Xclassgc Enables dynamic unloading of classes by the JVM. This unloading is the default behavior. To disable dynamic class unloading.
  • -Xcompressedrefs (64-bit only) Uses 32-bit values for references.  By default, references are 64-bit. Xcompressedrefs cannot be included in an -Xoptionsfile, but only specified on the command line or using the IBM_JAVA_OPTIONS environment variable.
  • -Xdbg:<options> Loads debugging libraries to support the remote debugging of applications. This option is equivalent to -Xrunjdwp. By default, the debugging libraries are not loaded, and the VM instance is not enabled for debug.
  • -Xdebug This option is deprecated. Use -Xdbg for debugging.
  • -Xdiagnosticscollector[:settings=<filename>] Enables the Diagnostics Collector.  The settings option allows you to specify a different Diagnostics Collector settings file to use instead of the default dc.properties file in the JRE.
  • -Xdisablejavadump Turns off Javadump generation on errors and signals. By default, Javadump generation is enabled.
  • -Xdump Dump agents are set up during JVM initialization. They enable us to use events occurring in the JVM, such as Garbage Collection, thread start, or JVM termination, to initiate dumps or to start an external tool.
  • -Xenableexplicitgc Signals to the VM that calls to System.gc() trigger a garbage collection. This option is enabled by default.
  •  -Xfastresolve<n> .This option is used to tune performance by improving the resolution time for classes when the field count exceeds the threshold specified by <n>.
  • -Xfuture Turns on strict class-file format checks. Use this flag when you are developing new code because stricter checks will become the default in future releases. By default, strict format checks are disabled.
  • -Xifa:<on | off | force> (z/OS only) z/OS R6 can run Java applications on a new type of special-purpose assist processor called the eServer zSeries Application Assist Processor (zAAP).
  • -Xiss<size> Sets the initial stack size for Java threads. By default, the stack size is set to 2 KB. Use the -verbose:sizes option to output the value that the VM is using.
  • -Xjarversion Produces output information about the version of each jar file in the class path, the boot class path, and the extensions directory. Version information is taken from theImplementation-Version and Build-Level properties in the manifest of the jar.
  • -Xjni:<suboptions> Sets JNI options. You can use the following suboption with the -Xjni option:
    • -Xjni:arrayCacheMax=[<size in bytes>|unlimited] Sets the maximum size of the array cache. The default size is 8096 bytes.
  • -Xlinenumbers Displays line numbers in stack traces for debugging. See also -Xnolinenumbers. By default, line numbers are on.
  • -XlockReservation Enables an optimization that presumes a monitor is owned by the thread that last acquired it. The optimization minimizes the runtime cost of acquiring and releasing a monitor for a single thread if the monitor is rarely acquired by multiple threads. 
  • -Xlog Enables message logging. To prevent message logging, use the -Xlog:none option. By default, logging is enabled.
  • -Xlp<size> AIX: Requests the JVM to allocate the Java heap (the heap from which Java objects are allocated) with large (16 MB) pages, if a size is not specified. If large pages are not available, the Java heap is allocated with the next smaller page size that is supported by the system
  •  -Xmso<size> Sets the initial stack size for operating system threads.
  • -Xnoagent Disables support for the old JDB debugger.
  • -Xnoclassgc Disables dynamic class unloading. This option disables the release of native and Java heap storage associated with Java class loaders and classes that are no longer being used by the JVM.  Enabling this option is not recommended except under the direction of the IBM Java support team. The reason is the option can cause unlimited native memory growth, leading to out-of-memory errors.
  • -Xnolinenumbers Disables the line numbers for debugging. See also -Xlinenumbers. By default, line number are on.
  • -Xnosigcatch Disables JVM signal handling code. See also -Xsigcatch. By default, signal handling is enabled.
  • -Xnosigchain Disables signal handler chaining. See also -Xsigchain. By default, the signal handler chaining is enabled, except for z/OS.
  • -Xoptionsfile=<file>  Specifies a file that contains JVM options and definitions. By default, no option file is used.
  •  -Xoss<size> Recognized but deprecated. Use -Xss and -Xmso. Sets the maximum Java stack size for any thread. The maximum value for the stack size varies according to platform and specific machine configuration. If you exceed the maximum value, a java/lang/OutOfMemoryError message is reported.
  • -Xrdbginfo:<host>:<port> Loads the remote debug information server with the specified host and port. By default, the remote debug information server is disabled.
  •  -Xrs Disables signal handling in the JVM. Setting -Xrs prevents the Java runtime from handling any internally or externally generated signals such as SIGSEGV andSIGABRT. Any signals raised are handled by the default operating system handlers. Disabling signal handling in the JVM reduces performance by approximately 2-4%, depending on the application.
    • -Xrs:sync On UNIX systems, this option disables signal handling in the JVM for SIGSEGV, SIGFPE, SIGBUS, SIGILL, SIGTRAP, and SIGABRT signals. However, the JVM still handles the SIGQUIT and SIGTERM signals, among others. On Windows systems, hardware exceptions are not handled by the JVM when this option is specified. However, the Windows CTRL_BREAK_EVENT signal, triggered by the Ctrl-Break key combination, is still handled by the JVM. As with -Xrs, the use of -Xrs:sync reduces performance by approximately 2-4%, depending on the application.
  • -Xrun<library name>[:<options>] Use the later option -agentlib instead.
  • -Xscmx<size> Specifies cache size. This option applies only if a cache is being created and no cache of the same name exists. The default cache size is platform-dependent. You can find out the size value being used by adding -verbose:sizes as a command-line argument. Minimum cache size is 4 KB. Maximum cache size is platform-dependent. The size of cache that you can specify is limited by the amount of physical memory and paging space available to the system. The virtual address space of a process is shared between the shared classes cache and the Java heap. Increasing the maximum size of the Java heap reduces the size of the shared classes cache that you can create.
  • -XselectiveDebug Enables selective debugging. Use the com.ibm.jvm.Debuggable annotation to mark classes and methods that must be available for debugging. The JVM optimizes methods that do not need debugging to provide better performance in a debugging environment. 
  • -Xsigcatch Enables VM signal handling code. See also -Xnosigcatch. By default, signal handling is enabled
  • -Xsigchain Enables signal handler chaining. See also -Xnosigchain. By default, signal handler chaining is enabled.
  • -Xss<size> Sets the maximum stack size for Java threads. The default is 256 KB for 32-bit JVMs and 512 KB for 64-bit JVMs. The maximum value varies according to platform and specific machine configuration. If you exceed the maximum value, a java/lang/OutOfMemoryError message is reported.
  • -Xssi<size> Sets the stack size increment for Java threads. When the stack for a Java thread becomes full it is increased in size by this value until the maximum size (-Xss) is reached. The default is 16 KB.
  • -Xthr:minimizeUserCPU Minimizes user-mode CPU usage in thread synchronization where possible. The reduction in CPU usage might be a trade-off in exchange for lower performance.
  • -XtlhPrefetch Speculatively prefetches bytes in the thread local heap (TLH) ahead of the current allocation pointer during object allocation. This helps reduce the performance cost of subsequent allocations.


·          -XX command-line options

JVM command-line options that are specified with -XX are not stable and are not recommended for casual use.
These options are subject to change without notice.
  • -XXallowvmshutdown:[false|true]  This option is provided as a workaround for customer applications that cannot shut down cleanly, as described in APAR IZ59734. Customers who need this workaround should use -XXallowvmshutdown:false. The default option is -XXallowvmshutdown:true forJava 6 SR5 onwards.
  • -XX:MaxDirectMemorySize=<size> Sets the maximum size for an nio direct buffer. By default, the maximum size is 64 MB.
  • -XX:-StackTraceInThrowable This option removes stack traces from exceptions. By default, stack traces are available in exceptions. Including a stack trace in exceptions requires walking the stack and that can affect performance. Removing stack traces from exceptions can improve performance but can also make problems harder to debug. When this option is enabled, Throwable.getStackTrace() returns an empty array and the stack trace is displayed when an uncaught exception occurs.Thread.getStackTrace() and Thread.getAllStackTraces() are not affected by this option.

  • -XX:+UseCompressedOops (64-bit only) This option enables compressed references in 64-bit JVMs and is provided to help when porting applications from the Sun JVM to the IBM JVM. This option might not be supported in subsequent releases. The -XX:+UseCompressedOops option is similar to specifying –Xcompressedrefs.
  • -XX:-UseCompressedOops (64-bit only) This option prevents the use of compressed references in 64-bit JVMs. The option is provided to help when porting applications from the Sun JVM to the IBM JVM, and might not be supported in subsequent releases.








No comments:

Post a Comment