diff --git a/search/search_index.json b/search/search_index.json
index fe00d53..e69b843 100644
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -4777,7 +4777,7 @@
         },
         {
             "location": "/tool_jdmpview/",
-            "text": "Dump viewer (\njdmpview\n)\n\n\nThe dump viewer is a command-line tool that allows you to examine the contents of system dumps produced from the OpenJ9 VM. The dump viewer allows you to view both Java\u2122 and native information from the time the dump was produced.\n\n\nFor long running tasks, the dump viewer can also be run in batch mode.\n\n\nThe dump viewer is useful for diagnosing \nOutOfMemoryError\n exceptions in Java\u2122 applications. For problems like general protection faults (GPF), system abends, and SIGSEVs, a system debugger such as \ngdb\n (Linux) provides more information.\n\n\nSyntax\n\n\nStarting the dump viewer\n\n\njdmpview -core <core file>\n\n\n\n\n\nWhere \n<core file>\n specifies a dump file.                                                                                 \n\n\nOn z/OS\u00ae, you can copy the dump to an HFS file and supply that as input to \njdmpview\n, or you can supply a fully qualified MVS\u2122 data set name. For example:\n\n\n> jdmpview -core USER1.JVM.TDUMP.SSHD6.D070430.T092211\nDTFJView version 4.28.3, using DTFJ version 1.11.28004\nLoading image from DTFJ...\n\n\n\n\n\nMVS data set names may contain the dollar sign ($). Names that contain a dollar sign must be enclosed by single quotation marks ('). For example:\n\n\n> jdmpview -core 'USER1.JVM.$TDUMP.SSH$D7.D141211.T045506'\n\n\n\n\n\nAfter \njdmpview\n processes the dump files, a session starts, showing this message:\n\n\nFor a list of commands, type \"help\"; for how to use \"help\", type \"help help\"\n>\n\n\n\n\n\nIf you run the \njdmpview\n tool on a compressed file that contains multiple dumps, the tool detects and shows all the dump files, whether these are system dumps, Java dumps, or heap dumps. Because of this behavior, more than one context might be displayed when you start \njdmpview\n. To switch context, type \ncontext <n>\n, where \n<n>\n is the context value for the dump you want to investigate.\n\n\nOn z/OS, a system dump can contain multiple address spaces and an address space can contain multiple VM instances. In this case, the context allows you to select the address space and VM instance within the dump file. The following z/OS example shows address spaces (\nASID\n), with two JVMs occupying address space \n0x73\n (context 5 and 6). The current context is 5 (\nCTX:5>\n), shown with an asterisk. To view the JVM in context 6, you can switch by specifying \ncontext 6\n.  \n\n\nCTX\n:\n5\n>\n \ncontext\n\n\nAvailable\n \ncontexts\n \n(*\n \n=\n \ncurrently\n \nselected\n \ncontext\n)\n \n:\n\n\n\n0\n \n:\n \nASID\n:\n \n0x1\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n1\n \n:\n \nASID\n:\n \n0x3\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n2\n \n:\n \nASID\n:\n \n0x4\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n3\n \n:\n \nASID\n:\n \n0x6\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n4\n \n:\n \nASID\n:\n \n0x7\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n*\n5\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x83d2053a0\n \n:\n \nJRE\n \n1.8\n.\n0\n \nz\n/\nOS\n \ns390x\n-\n64\n \nbuild\n \n20181117\n_128845\n \n(\npmz6480\n-\n20181120\n_01\n)\n\n\n6\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x8004053a0\n \n:\n \nJRE\n \n1.8\n.\n0\n \nz\n/\nOS\n \ns390x\n-\n64\n \nbuild\n \n20181117\n_128845\n \n(\npmz6480\n-\n20181120\n_01\n)\n\n\n7\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x4a7bd9e8\n \n:\n \nNo\n \nJRE\n\n\n8\n \n:\n \nASID\n:\n \n0xffff\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n\n\n\n\nIf you are using \njdmpview\n to view Java dumps and heap dumps, some options do not produce any output. For example, a heap dump doesn't contain the information requested by the \ninfo system\n command, but does contain information requested by the \ninfo class\n command.\n\n\nIf you are viewing a dump where there are a large number of objects on the heap, you can speed up the performance of \njdmpview\n by ensuring that your system has enough memory available and does not need to page memory to disk. To achieve this, start \njdmpview\n with a larger heap size by specifying the \n-Xmx\n option. Use the \n-J\n option to pass the \n-Xmx\n command line option to the JVM. For example:\n\n\njdmpview -J-Xmx<n> -core <core file>\n\n\n\n\n\nThe options available to the dump viewer session are shown under \nSession parameters\n\n\nStarting in batch mode\n\n\nFor long running or routine jobs, \njdmpview\n can be used in batch mode.\n\n\nYou can run a single command without specifying a command file by appending the command to the end of the \njdmpview\n command line. For example:\n\n\njdmpview -core mycore.dmp info class\n\n\n\n\n\nWhen specifying jdmpview commands that accept a wildcard parameter, you must replace the wildcard symbol with \nALL\n to prevent the shell interpreting the wildcard symbol. For example, in interactive mode, the command \ninfo thread *\n must be specified in the following way:\n\n\njdmpview -core mycore.dmp info thread ALL\n\n\n\n\n\nBatch mode is controlled with the following command line options:\n\n\n\n\n\n\n\n\nOption\n\n\nExplanation\n\n\n\n\n\n\n\n\n\n\n-cmdfile \n\n\nA file that contains a series of jdmpview commands, which are read and run sequentially.\n\n\n\n\n\n\n-charset \n\n\nThe character set for the commands specified in -cmdfile (name must be a supported charset as defined in java.nio.charset.Charset. For example, US-ASCII)\n\n\n\n\n\n\n-outfile \n\n\nThe file to record any output generated by commands.\n\n\n\n\n\n\n-overwrite\n\n\nIf the file specified in -outfile exists, this option overwrites the file.\n\n\n\n\n\n\n-append\n\n\nIf the file specified in -outfile exists, new output messages are appended to the end of that file. The -append and -overwrite options cannot be used at the same time.\n\n\n\n\n\n\n\n\nThe command file can have empty lines that contain spaces, or comment lines that start with // or #. These lines are ignored by jdmpview. Example command file:\n\n\n// commands.txt\ninfo system\ninfo proc\n\n\n\n\n\nTo run jdmpview in batch mode, using this command file, specify:\n\n\njdmpview -outfile out.txt [-overwrite|-append] -cmdfile commands.txt -core <path to core file>\n\n\n\n\n\nWhen the output file exists, you need to specify either the \n-overwrite\n option or the \n-append\n option. If you do not, an error message is generated.\n\n\nProcessing output\n\n\nYou can redirect command output to a file, or pipe the command output to another command.\n\n\nTo redirect jdmpview command output to a file, use one of the following formats:\n\n\ncommand > <target_file>\n\n\n\n\n\nIf the target file exists, this redirection overwrites the content within it.\n\n\ncommand >> <target_file>\n\n\n\n\n\nIf the target file exists, this redirection appends the output to it.\n\n\nWhere \n<target_file>\n is the file name, which can include the full path to the file.\n\n\nTo pipe \njdmpview\n command output to another command, use the vertical bar (|) character. For example:\n\n\ncommand | grep string\n\n\n\n\n\nYou can chain more than two commands together by using multiple vertical bar characters.\n\n\nThe following commands can be used to interrogate the output:\n\n\n\n\ncharsFrom\n\n\ncharsTo\n\n\ngrep\n\n\ntokens\n\n\n\n\nUsing \nCharsFrom\n\n\nUse the \ncharsFrom\n command after the vertical bar character to exclude all characters that come before a specified pattern in a resulting line.\n\n\ncharsFrom <options> pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-e\n or \n-exclude\n : Exclude the matched pattern from the resulting line. By default, the matched pattern is included in the resulting line.\n\n\n-keep\n : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.\n\n\n-i\n or \n-ignoreCase\n : Ignore case.\n\n\n\n\nFor example, the following command displays resulting lines that contain the pattern \njre\n, and trims each line to exclude all characters that come before this pattern:\n\n\n> info mod | charsFrom jre\njre/lib/ppc64/libzip.so @ 0x0, sections:\njre/lib/ppc64/libdbgwrapper80.so @ 0x0, sections:\njre/lib/ppc64/libverify.so @ 0x0, sections:\njre/lib/ppc64/libjava.so @ 0x0, sections:\njre/lib/ppc64/compressedrefs/libjclse7b_28.so @ 0x0, sections:\n\n\n\n\n\nUsing \nCharsTo\n\n\nUse the \nCharsTo\n command after the vertical bar character to include the characters in a resulting line until a specific pattern is found.\n\n\ncharsTo [options] pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-include\n : Include the matched pattern in the resulting line. By default, the matched pattern is excluded from the resulting line.\n\n\n-keep\n : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.\n\n\n-i\n or \n-ignoreCase\n : Ignore case.\n\n\n\n\nFor example, the following command displays lines that contain the pattern \"@\", and trims each line to exclude all characters from \"@\" onwards:\n\n\n> info mod | charsTo @\nbin/java\n/usr/lib64/gconv/UTF-16.so\n/test/sdk/lib/ppc64le/libnet.so\n/test/sdk/lib/ppc64le/libnio.so\n/test/sdk/lib/ppc64le/libzip.so\n/test/sdk/lib/ppc64le/libjsig.so\nlibjsig.so\n\n\n\n\n\nYou can also use \ncharsFrom\n and \ncharsTo\n together, separated by a vertical bar character. For example, the following command displays lines that contain the pattern \"lib\", and trims each line to exclude all characters that come before this pattern, as well as all characters from the pattern \n@\n :\n\n\n> info mod | charsFrom lib | charsTo @\nlib/ppc64le/libzip.so\nlib/ppc64le/libjsig.so\nlib/ppc64le/libverify.so\nlib/ppc64le/libjava.so\nlib/ppc64le/compressedrefs/libj9jit29.so\n\n\n\n\n\n \nNote:\n The line will not be displayed if the \ncharsFrom\n and \ncharsTo\n are used together, but only one of the patterns are matched in a line. Furthermore, the line will not be displayed if both patterns are matched in a line, but the \ncharsTo\n pattern appears before, and not after, the \ncharsFrom\n pattern.\n\n\nUsing \ngrep\n\n\nUse the \ngrep\n command after the vertical bar character to show which lines match a specified pattern.\n\n\ngrep <options> pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-i\n : Ignore case.\n\n\n-r\n, \n-G\n, or \n--regex\n: Use a regular expression as defined in the Java documentation of the java.utils.regex.Pattern class.\n\n\n-b\n or \n--block\n : Show blocks of lines where at least one of the lines matches the pattern. Blocks of lines are separated by empty lines.\n\n\n-A\n <NUM> or +<NUM> : Show at most <NUM> lines after the matching line. For example grep -A 2 pattern or grep +2 pattern.\n\n\n-B\n <NUM> or -<NUM> : Show at most <NUM> lines before the matching line.\n\n\n-C\n <NUM> or +-<NUM> : Show at most <NUM> lines before and after the matching line.\n\n\n-v\n or \n--invert-match\n : Use with the grep command to show lines that do not match the pattern. These options are equivalent to the grep- command.\n\n\n-F\n or \n--fixed-strings\n : Do not treat the asterisk (*) as a wildcard character. Use these options with the \n-r\n, \n-G\n, or \n--regex\n options.\n\n\n\n\nPattern rules:\n\n\n\n\nAn asterisk (*) in a pattern is treated as a wildcard character unless you specify the \n-F\n or \n--fixed-strings\n options.\n\n\nIf a pattern contains spaces, enclose the pattern in a pair of double quotation marks (\").\n\n\nIf a pattern contains double quotation marks, enclose the pattern in a pair of single quotation marks (').\n\n\n\n\nYou can specify multiple sub-patterns to match by using the following format, but only if you do not use the \n-r\n, \n-G\n, or \n--regex\n options:\n\n\n\"[pattern1|pattern2|...|patternN]\"\n\n\nThe initial and trailing double quotation marks and brackets ([ ]) are required. Use a vertical bar character to separate the sub-patterns. Quotation marks and the vertical bar are not allowed in a sub-pattern. Spaces are allowed in the middle of a sub-pattern, but leading and trailing spaces will be trimmed.\n\n\n\n\n\n\nUse the \ngrep\n command to show lines that do not match the pattern.\n\n\n\n\n\n\nFor example, the following command displays the number of instances and total heap size for the \njava/lang/String\n class:\n\n\n> info class | grep java/lang/String              \n94 7688 [Ljava/lang/String;            \n1822 58304 java/lang/String               \n1 16 java/lang/String$CaseInsensitiveComparator               \n0 0 java/lang/String$UnsafeHelpers\n\n\n\n\n\nThe following command uses two pipes in combination to display the number of instances and total heap size for the \njava/lang/StringCoding.StringDecoder\n class:\n\n\n> info class | grep java/lang/String | grep -i decoder\n1 48 java/lang/StringCoding$StringDecoder\n\n\n\n\n\nUsing \ntokens\n\n\nUse the \ntokens\n command after the vertical bar character to isolate specified tokens in the resulting lines.\n\n\ntokens [options] range[,range][..range]\n\n\n\n\n\nYou can define range in the following formats:\n\n\n\n\nx\n\n\nx,y\n\n\nx..y\n\n\n\n\nA set of rules applies to these formats:\n\n\n\n\nx or y can be prefixed with \"-\". This means that x or y are counting backwards from the end of a list. For example, a y value of -1 represents the last token in a list, while -2 represents the penultimate token in a list.\n\n\nx must represent a token that either precedes or is at the same position as y.\n\n\n\n\nIn this format, if x is omitted, it is assumed to be '1'. If y is omitted, it is assumed to be '-1'.\n\n\nFor example, the following command displays the first and second token for each resulting line:\n\n\n> info mmap | grep -r ^0x | tokens 1,2\n0x0000000000012fff 0x000000000000d000\n0x0000000000017fff 0x0000000000004000\n0x00000000009dafff 0x0000000000018000\n0x00000000009fffff 0x000000000001f000\n0x0000000000cbefff 0x0000000000002000\n0x0000000000d76fff 0x0000000000001000\n0x0000000003145fff 0x0000000000071000\n0x0000000003b93fff 0x0000000000003000\n\n\n\n\n\nSession parameters\n\n\nWhen \njdmpview\n is started, the following parameters can be used during the session to interrogate the system dump data:\n\n\ncd\n\n\n    cd <directory_name>\n\n\n\n\n\n\n\nChanges the working directory to \n<directory_name>\n. The working directory is used for log files. Logging is controlled by the \nset logging\n command. Use the \npwd\n command to query the current working directory.\n\n\n\n\ncmdfile\n\n\n    cmdfile <directory_name>\n\n\n\n\n\n\n\nRuns all of the commands in a file. The commands are read line by line and run sequentially. Empty lines, and lines that start with \n//\n or \n#\n, are ignored. Use the option charset to identify the character set that is used in the chosen file. The character set must be supported, as defined in \njava.nio.charset.Charset\n, such as \nUS-ASCII\n.\n\n\n\n\ndeadlock\n\n\n\n\n\n\nThis command detects deadlock situations in the Java application that was running when the system dump was produced. Example output:\n\n\ndeadlock loop:\nthread: Thread-2 (monitor object: 0x9e32c8) waiting for =>\nthread: Thread-3 (monitor object: 0x9e3300) waiting for =>\nthread: Thread-2 (monitor object: 0x9e32c8)\n\n\n\n\n\nIn this example, the deadlock analysis shows that \nThread-2\n is waiting for a lock held by \nThread-3\n, which is in turn waiting for a lock held earlier by \nThread-2\n.\n\n\nThreads are identified by their Java thread name, whereas object monitors are identified by the address of the object in the Java heap. You can obtain further information about the threads using the \ninfo thread *\n command. You can obtain further information about the monitors using the \nx/J <0xaddr>\n command.\n\n\n\n\n\n\nfind\n\n\n    find <pattern>,<start_address>,<end_address>,<memory_boundary>, <bytes_to_print>,<matches_to_display>\n\n\n\n\n\n\n\n\n\nThis command searches for \n<pattern>\n in the memory segment from \n<start_address>\n to \n<end_address>\n (both inclusive), and shows the number of matching addresses you specify with \n<matches_to_display>\n. You can also display the next \n<bytes_to_print>\n bytes for the last match.\n\n\nBy default, the \nfind\n command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify \n<memory_boundary>\n to search every \n<memory_boundary>\n bytes. For example, if you specify a \n<memory_boundary>\n of \"4\", the command searches for the pattern every 4 bytes.\n\n\n\n\n\n\nfindnext\n\n\n    findptr <pattern>,<start_address>,<end_address>,<memory_boundary>, <bytes_to_print>,<matches_to_display>\n\n\n\n\n\n\n\n\n\nFinds the next instance of the last string passed to \nfind\n or \nfindptr\n. It repeats the previous \nfind\n or \nfindptr\n command, depending on which one was issued last, starting from the last match.\n\n\nSearches memory for the given pointer. \nfindptr\n searches for \n<pattern>\n as a pointer in the memory segment from \n<start_address>\n to \n<end_address>\n (both inclusive), and shows the number of matching addresses you specify with \n<matches_to_display>\n. You can also display the next \n<bytes_to_print>\n bytes for the last match.\n\n\nBy default, the \nfindptr\n command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify \n<memory_boundary>\n to search every \n<memory_boundary>\n bytes. For example, if you specify a \n<memory_boundary>\n of \"4\", the command searches for the pattern every 4 bytes.\n\n\n\n\n\n\nhelp\n\n\n    help [<command_name>]\n\n\n\n\n\n\n\nShows information for a specific command. If you supply no parameters, help shows the complete list of supported commands.\n\n\n\n\nhistory\n\n\n    history|his [-r][<N>]\n\n\n\n\n\n\n\nRecalls and displays the history of commands that you have run. The default behavior is to display the 20 most recent commands. If you use the argument \n<N>\n, then N commands are displayed. For example, if you run history 35, then the 35 most recent commands are displayed. You can also use the \n-r\n option with \n<N>\n to run the Nth most recent command in your history. Using the \n-r\n option alone runs the most recent command in your history.\n\n\n\n\ninfo thread\n\n\n    info thread [*|all|<native_thread_ID>|<zos_TCB_address>]\n\n\n\n\n\n\n\n\n\nDisplays information about Java and native threads. The following information is displayed for all threads (\"*\"), or the specified thread:\n\n\n\n\nThread id\n\n\nRegisters\n\n\nStack sections\n\n\nThread frames: procedure name and base pointer\n\n\nThread properties: list of native thread properties and their values. For example: thread priority.\n\n\nAssociated Java thread, if applicable:\n\n\nName of Java thread\n\n\nAddress of associated \njava.lang.Thread\n object\n\n\nState (shown in JVMTI and \njava.lang.Thread.State\n formats)\n\n\nThe monitor the thread is waiting for\n\n\nThread frames: base pointer, method, and filename:line\n\n\n\n\n\n\n\n\nIf you supply no parameters, the command shows information about the current thread.\n\n\n\n\n\n\ninfo system\n\n\n\n\n\n\nDisplays the following information about the system that produced the core dump:\n\n\n\n\nAmount of memory\n\n\nOperating system\n\n\nVirtual machine or virtual machines present\n\n\n\n\n\n\n\n\ninfo class\n\n\n    info class [<class_name>] [-sort:<name>|<count>|<size>]\n\n\n\n\n\n\n\nDisplays the inheritance chain and other data for a given class.\n\n\n\n\nIf a class name is passed to info class, the following information is shown about that class:\n\n\n- Name\n- ID\n- Superclass ID\n- Class loader ID\n- Modifiers\n- Number of instances and total size of instances\n- Inheritance chain\n- Fields with modifiers (and values for static fields)\n- Methods with modifiers\n\nIf no parameters are passed to `info class`, the following information is shown:\n\n- The number of instances of each class.\n- The total size of all instances of each class.\n- The class name\n- The total number of instances of all classes.\n- The total size of all objects.\n\nThe `sort` option allows the list of classes to be sorted by name (default), by number of instances of each class, or by the total size of instances of each class.\n\n\n\n\n\ninfo proc\n\n\n\n\n\n\nDisplays threads, command-line arguments, environment variables, and shared modules of the current process.\n\n\nTo view the shared modules used by a process, use the \ninfo sym\n command.\n\n\n\n\n\n\ninfo jitm\n\n\n\n\n\n\nDisplays JIT compiled methods and their addresses:\n\n\n\n\nMethod name and signature\n\n\nMethod start address\n\n\nMethod end address\n\n\n\n\n\n\n\n\ninfo lock\n\n\n\n\nDisplays a list of available monitors and locked objects.\n\n\n\n\ninfo sym\n\n\n\n\nDisplays a list of available modules. For each process in the address spaces, this command shows a list of module sections for each module, their start and end addresses, names, and sizes.\n\n\n\n\ninfo mmap\n\n\n    info mmap [<address>] [-verbose] [-sort:<size>|<address>]\n\n\n\n\n\n\n\nDisplays a summary list of memory sections in the process address space, with start and end address, size, and properties. If an address parameter is specified, the results show details of only the memory section containing the address. If \n-verbose\n is specified, full details of the properties of each memory section are displayed. The \n-sort\n option allows the list of memory sections to be sorted by size or by start address (default).\n\n\n\n\ninfo heap\n\n\n    info heap [*|<heap_name>*]\n\n\n\n\n\n\n\n\n\nIf no parameters are passed to this command, the heap names and heap sections are shown.\n\n\nUsing either \"*\" or a heap name shows the following information about all heaps or the specified heap:\n\n\n\n\nHeap name\n\n\n(Heap size and occupancy)\n\n\nHeap sections\n\n\nSection name\n\n\nSection size\n\n\nWhether the section is shared\n\n\nWhether the section is executable\n\n\nWhether the section is read only\n\n\n\n\n\n\n\n\nheapdump\n\n\n    heapdump [<heaps>]\n\n\n\n\n\n\n\nGenerates a Java heap dump to a file. You can select which Java heaps to dump by listing the heap names, separated by spaces. To see which heaps are available, use the \ninfo heap\n command. By default, all Java heaps are dumped.\n\n\n\n\nhexdump\n\n\n    hexdump <hex_address> <bytes_to_print>\n\n\n\n\n\n\n\nDisplays a section of memory in a hexdump-like format. Displays \n<bytes_to_print>\n bytes of memory contents starting from \n<hex_address>\n.\n\n\n\n\n+\n\n\n\n\nDisplays the next section of memory in hexdump-like format. This command is used with the hexdump command to enable easy scrolling forwards through memory. The previous hexdump command is repeated, starting from the end of the previous one.\n\n\n\n\n-\n\n\n\n\nDisplays the previous section of memory in hexdump-like format. This command is used with the hexdump command to enable easy scrolling backwards through memory. The previous hexdump command is repeated, starting from a position before the previous one.\n\n\n\n\npwd\n\n\n\n\nDisplays the current working directory, which is the directory where log files are stored.\n\n\n\n\nquit\n\n\n\n\nExits the core file viewing tool; any log files that are currently open are closed before exit.\n\n\n\n\nset heapdump\n\n\n\n\nConfigures Heapdump generation settings.\nset heapdump <options>\n\n\n\n\n\n\n\n\n\nwhere \n<options>\n are:\n\n\n\n\nphd\n: Set the Heapdump format to Portable Heapdump, which is the default.\n\n\ntxt\n: Set the Heapdump format to classic.\n\n\nfile <file>\n: Set the destination of the Heapdump.\n\n\nmultiplefiles [on|off]\n: If multiplefiles is set to on, each Java heap in the system dump is written to a separate file. If multiplefiles is set to off, all Java heaps are written to the same file. The default is off.\n\n\n\n\n\n\n\n\nset logging\n\n\n    set logging <options>\n\n\n\n\n\n\n\n\n\nConfigures logging settings, starts logging, or stops logging. This parameter enables the results of commands to be logged to a file, where \n<options>\n are:\n\n\n\n\n[on|off]\n: Turns logging on or off. (Default: off)\n\n\nfile <filename>\n: Sets the file to log to. The path is relative to the directory returned by the pwd command, unless an absolute path is specified. If the file is set while logging is on, the change takes effect the next time logging is started. Not set by default.\n\n\noverwrite [on|off]\n: Turns overwriting of the specified log file on or off. When overwrite is off, log messages are appended to the log file. When overwrite is on, the log file is overwritten after the set logging command. (Default: off)\n\n\nredirect [on|off]\n: Turns redirecting to file on or off, with off being the default. When logging is set to on:\n\n\nA value of on for redirect sends non-error output only to the log file.\n\n\nA value of off for redirect sends non-error output to the console and log file.\n\n\n\n\nRedirect must be turned off before logging can be turned off. (Default: off)\n\n\n\n\n\n\nshow heapdump\n\n\n\n\nDisplays the current Heapdump generation settings.\n\n\n\n\nshow logging\n\n\n\n\n\n\nDisplays the current logging settings:\n\n\n\n\nset_logging = [on|off]\n\n\nset_logging_file =\n\n\nset_logging_overwrite = [on|off]\n\n\nset_logging_redirect = [on|off]\n\n\ncurrent_logging_file =\n\n\n\n\nThe file that is currently being logged to might be different from set_logging_file, if that value was changed after logging was started.\n\n\n\n\n\n\nwhatis \n\n\n\n\nDisplays information about \nwhatis\n stored at the given memory address, \n<hex_address>\n. This command examines the memory location at \n<hex_address>\n and tries to find out more information about this address. For example:\n>\n \nwhatis\n \n0x8e76a8\n\n\n\nheap\n \n#\n1\n \n-\n \nname\n:\n \nDefault\n@19f\nce8\n\n\n0x8e76a8\n \nis\n \nwithin\n \nheap\n \nsegment\n:\n \n8\nb0000\n \n--\n \ncb0000\n\n\n0x8e76a8\n \nis\n \nstart\n \nof\n \nan\n \nobject\n \nof\n \ntype\n \njava\n/\nlang\n/\nThread\n\n\n\n\n\n\n\n\n\n\nx/ (examine)\n\n\n\n\n\n\nPasses the number of items to display and the unit size, as listed in the following table, to the sub-command. For example, \nx/12bd\n.\n\n\n\n\n\n\n\n\nAbbreviation\n\n\nUnit\n\n\nSize\n\n\n\n\n\n\n\n\n\n\nb\n\n\nByte\n\n\n8-bit\n\n\n\n\n\n\nh\n\n\nHalf word\n\n\n16-bit\n\n\n\n\n\n\nw\n\n\nWord\n\n\n32-bit\n\n\n\n\n\n\ng\n\n\nGiant word\n\n\n64-bit\n\n\n\n\n\n\n\n\nThis command is similar to the use of the \nx/\n command in gdb, including the use of defaults.\n\n\n\n\n\n\nx/J [\n|<0xaddr>]\n\n\n\n\n\n\nDisplays information about a particular object, or all objects of a class. If \n is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.\n\n\n \nNote:\n This command ignores the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/D <0xaddr>\n\n\n\n\n\n\nDisplays the integer at the specified address, adjusted for the hardware architecture this dump file is from. For example, the file might be from a big endian architecture.\n\n\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/X <0xaddr>\n\n\n\n\n\n\nDisplays the hex value of the bytes at the specified address, adjusted for the hardware architecture this dump file is from. For example, the file might be from a big endian architecture.\n\n\n \nNote:\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/K <0xaddr>\n\n\n\n\n\n\nWhere the size is defined by the pointer size of the architecture, this parameter shows the value of each section of memory. The output is adjusted for the hardware architecture this dump file is from, starting at the specified address. It also displays a module with a module section and an offset from the start of that module section in memory if the pointer points to that module section. If no symbol is found, it displays a \"*\" and an offset from the current address if the pointer points to an address in 4KB (4096 bytes) of the current address. Although this command can work on an arbitrary section of memory, it is probably more useful on a section of memory that refers to a stack frame. To find the memory section of a thread stack frame, use the info thread command.\n\n\n \nNote:\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nExample\n\n\nThis example session illustrates a selection of the commands available and their use.\n\n\nIn the example session, which is generated on a Linux system, some lines have been removed for clarity (and terseness).\n\n\nUser input is prefaced by a greater than symbol (>).\n\n\n    \ntest\n@\nmadras\n:\n~/\ntest\n>\n \nsdk\n/\nbin\n/\njdmpview\n \n-\ncore\n \ncore\n.20121116.154147.16838.0001\n.\ndmp\n\n    \nDTFJView\n \nversion\n \n4.27.57\n,\n \nusing\n \nDTFJ\n \nversion\n \n1.10.27022\n\n    \nLoading\n \nimage\n \nfrom\n \nDTFJ\n...\n\n\n    \nFor\n \na\n \nlist\n \nof\n \ncommands\n,\n \ntype\n \n\"help\"\n;\n \nfor\n \nhow\n \nto\n \nuse\n \n\"help\"\n,\n \ntype\n \n\"help help\"\n\n    \nAvailable\n \ncontexts\n \n(\n*\n \n=\n \ncurrently\n \nselected\n \ncontext\n)\n \n:\n\n\n    \nSource\n \n:\n \nfile\n:\n///home/test/core.20121116.154147.16838.0001.dmp\n\n            \n*\n0\n \n:\n \nPID\n:\n \n16867\n \n:\n \nJRE\n \n1.8.0\n \nLinux\n \nppc64\n-\n64\n \nbuild\n \n20121115\n_128521\n \n(\npxp6480\n-\n20121116\n_01\n \n)\n\n\n    \n>\n \nhelp\n\n    \n+\n                                              \ndisplays\n \nthe\n \nnext\n \nsection\n \nof\n \nmemory\n \nin\n \nhexdump\n-\nlike\n \nformat\n\n    \n-\n                                              \ndisplays\n \nthe\n \nprevious\n \nsection\n \nof\n \nmemory\n \nin\n \nhexdump\n-\nlike\n \nformat\n\n    \ncd\n                                             \nchanges\n \nthe\n \ncurrent\n \nworking\n \ndirectory\n,\n \nused\n \nfor\n \nlog\n \nfiles\n\n    \nclose\n                     \n[\ncontext\n \nid\n]\n         \ncloses\n \nthe\n \nconnection\n \nto\n \na\n \ncore\n \nfile\n\n    \ncontext\n                   \n[\nID\n|\nasid\n \nID\n]\n         \nswitch\n \nto\n \nthe\n \nselected\n \ncontext\n\n    \ndeadlock\n                                       \ndisplays\n \ninformation\n \nabout\n \ndeadlocks\n \nif\n \nthere\n \nare\n \nany\n\n    \nexit\n                                           \nExit\n \nthe\n \napplication\n\n    \nfind\n                                           \nsearches\n \nmemory\n \nfor\n \na\n \ngiven\n \nstring\n\n    \nfindnext\n                                       \nfinds\n \nthe\n \nnext\n \ninstance\n \nof\n \nthe\n \nlast\n \nstring\n \npassed\n \nto\n \n\"find\"\n\n    \nfindptr\n                                        \nsearches\n \nmemory\n \nfor\n \nthe\n \ngiven\n \npointer\n\n    \nheapdump\n                                       \ngenerates\n \na\n \nPHD\n \nor\n \nclassic\n \nformat\n \nheapdump\n\n    \nhelp\n                      \n[\ncommand\n \nname\n]\n       \ndisplays\n \nlist\n \nof\n \ncommands\n \nor\n \nhelp\n \nfor\n \na\n \nspecific\n \ncommand\n\n    \nhexdump\n                                        \noutputs\n \na\n \nsection\n \nof\n \nmemory\n \nin\n \na\n \nhexdump\n-\nlike\n \nformat\n\n    \ninfo\n                      \n<\ncomponent\n>\n          \nInformation\n \nabout\n \nthe\n \nspecified\n \ncomponent\n\n    \ninfo\n \nclass\n                \n<\nJava\n \nclass\n \nname\n>\n    \nProvides\n \ninformation\n \nabout\n \nthe\n \nspecified\n \nJava\n \nclass\n\n    \ninfo\n \nheap\n                 \n[\n*|\nheap\n \nname\n]\n        \nDisplays\n \ninformation\n \nabout\n \nJava\n \nheaps\n\n    \ninfo\n \njitm\n                                      \nDisplays\n \nJIT\n'\ned\n \nmethods\n \nand\n \ntheir\n \naddresses\n\n    \ninfo\n \nlock\n                                      \noutputs\n \na\n \nlist\n \nof\n \nsystem\n \nmonitors\n \nand\n \nlocked\n \nobjects\n\n    \ninfo\n \nmmap\n                                      \nOutputs\n \na\n \nlist\n \nof\n \nall\n \nmemory\n \nsegments\n \nin\n \nthe\n \naddress\n \nspace\n\n    \ninfo\n \nmod\n                                       \noutputs\n \nmodule\n \ninformation\n\n    \ninfo\n \nproc\n                                      \nshortened\n \nform\n \nof\n \ninfo\n \nprocess\n\n    \ninfo\n \nprocess\n                                   \ndisplays\n \nthreads\n,\n \ncommand\n \nline\n \narguments\n,\n \nenvironment\n\n    \ninfo\n \nsym\n                                       \nan\n \nalias\n \nfor\n \n'\nmod\n'\n\n    \ninfo\n \nsys\n                                       \nshortened\n \nform\n \nof\n \ninfo\n \nsystem\n\n    \ninfo\n \nsystem\n                                    \ndisplays\n \ninformation\n \nabout\n \nthe\n \nsystem\n \nthe\n \ncore\n \ndump\n \nis\n \nfrom\n\n    \ninfo\n \nthread\n                                    \ndisplays\n \ninformation\n \nabout\n \nJava\n \nand\n \nnative\n \nthreads\n\n    \nlog\n                       \n[\nname\n \nlevel\n]\n         \ndisplay\n \nand\n \ncontrol\n \ninstances\n \nof\n \njava\n.\nutil\n.\nlogging\n.\nLogger\n\n    \nopen\n                      \n[\npath\n \nto\n \ncore\n]\n       \nopens\n \nthe\n \nspecified\n \ncore\n \nfile\n\n    \nplugins\n                                        \nPlugin\n \nmanagement\n \ncommands\n\n                         \nlist\n                      \nShow\n \nthe\n \nlist\n \nof\n \nloaded\n \nplugins\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                       \nreload\n                      \nReload\n \nplugins\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                     \nshowpath\n                      \nShow\n \nthe\n \nDTFJ\n \nView\n \nplugin\n \nsearch\n \npath\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                      \nsetpath\n                      \nSet\n \nthe\n \nDTFJ\n \nView\n \nplugin\n \nsearch\n \npath\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n    \npwd\n                                            \ndisplays\n \nthe\n \ncurrent\n \nworking\n \ndirectory\n\n    \nquit\n                                           \nExit\n \nthe\n \napplication\n\n    \nset\n                       \n[\nlogging\n|\nheapdump\n]\n   \nSets\n \noptions\n \nfor\n \nthe\n \nspecified\n \ncommand\n\n    \nset\n \nheapdump\n                                   \nconfigures\n \nheapdump\n \nformat\n,\n \nfilename\n \nand\n \nmultiple\n \nheap\n \nsupport\n\n    \nset\n \nlogging\n                                    \nconfigures\n \nseveral\n \nlogging\n-\nrelated\n \nparameters\n,\n \nstarts\n/\nstops\n \nlogging\n\n                           \non\n                      \nturn\n \non\n \nlogging\n\n                          \noff\n                      \nturn\n \noff\n \nlogging\n\n                         \nfile\n                      \nturn\n \non\n \nlogging\n\n                    \noverwrite\n                      \ncontrols\n \nthe\n \noverwriting\n \nof\n \nlog\n \nfiles\n\n    \nshow\n                      \n[\nlogging\n|\nheapdump\n]\n   \nDisplays\n \nthe\n \ncurrent\n \nset\n \noptions\n \nfor\n \na\n \ncommand\n\n    \nshow\n \nheapdump\n                                  \ndisplays\n \nheapdump\n \nsettings\n\n    \nshow\n \nlogging\n                                   \nshows\n \nthe\n \ncurrent\n \nlogging\n \noptions\n\n    \nwhatis\n                    \n[\nhex\n \naddress\n]\n        \ngives\n \ninformation\n \nabout\n \nwhat\n \nis\n \nstored\n \nat\n \nthe\n \ngiven\n \nmemory\n \naddress\n\n    \nx\n/\nd\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \ninteger\n \nat\n \nthe\n \nspecified\n \naddress\n\n    \nx\n/\nj\n                       \n<\nobject\n \naddress\n>\n \n[\nclass\n \nname\n]\n \ndisplays\n \ninformation\n \nabout\n \na\n \nparticular\n \nobject\n \nor\n \nall\n \nobjects\n \nof\n \na\n \nclass\n\n    \nx\n/\nk\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \nspecified\n \nmemory\n \nsection\n \nas\n \nif\n \nit\n \nwere\n \na\n \nstack\n \nframe\n \nparameters\n\n    \nx\n/\nx\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \nhex\n \nvalue\n \nof\n \nthe\n \nbytes\n \nat\n \nthe\n \nspecified\n \naddress\n\n\n    \n>\n \nset\n \nlogging\n \nfile\n \nlog\n.\ntxt\n\n    \nlogging\n \nturned\n \non\n;\n \noutputting\n \nto\n \n\"/home/test/log.txt\"\n\n\n    \n>\n \ninfo\n \nsystem\n\n    \nMachine\n \nOS\n:\n     \nLinux\n\n    \nHypervisor\n:\n     \nPowerVM\n\n    \nMachine\n \nname\n:\n   \nmadras\n\n    \nMachine\n \nIP\n \naddress\n(\nes\n)\n:\n\n                    \n9.20.88.155\n\n    \nSystem\n \nmemory\n:\n  \n8269201408\n\n\n    \nDump\n \ncreation\n \ntime\n:\n \n2015\n/\n08\n/\n10\n \n14\n:\n44\n:\n36\n:\n01\n9\n\n    \nDump\n \ncreation\n \ntime\n \n(\nnanoseconds\n)\n:\n \n21314421467539\n\n\n    \nJava\n \nversion\n:\n\n    \nJRE\n \n1.8.0\n \nLinux\n \nppc64\n-\n64\n \nbuild\n \n20121115\n_128521\n \n(\npxp6490\n-\n20121116\n_01\n)\n\n\n    \nJVM\n \nstart\n \ntime\n:\n \n2015\n/\n08\n/\n10\n \n14\n:\n44\n:\n05\n:\n690\n\n    \nJVM\n \nstart\n \ntime\n \n(\nnanoseconds\n)\n:\n \n21284086192267\n\n\n    \n>\n \ninfo\n \nthread\n \n*\n\n    \nnative\n \nthreads\n \nfor\n \naddress\n \nspace\n\n     \nprocess\n \nid\n:\n \n16838\n\n\n      \nthread\n \nid\n:\n \n16839\n\n       \nregisters\n:\n\n\n       \nnative\n \nstack\n \nsections\n:\n\n       \nnative\n \nstack\n \nframes\n:\n\n       \nproperties\n:\n\n       \nassociated\n \nJava\n \nthread\n:\n\n        \nname\n:\n          \nmain\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x2ffd1e08\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nRUNNABLE\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nRUNNABLE\n\n        \nJava\n \nstack\n \nframes\n:\n\n         \nbp\n:\n \n0x0000000000085b28\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\njvm\n/\nDump\n.\nSystemDumpImpl\n()\n  \n(\nNative\n \nMethod\n)\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x0000000000085b40\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\njvm\n/\nDump\n.\nSystemDump\n()\n  \nsource\n:\n \nDump\n.\njava\n:\n41\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x0000000000085b68\n  \nmethod\n:\n \nvoid\n \nmySystemDump\n.\nmain\n(\nString\n[])\n  \nsource\n:\n \nmySystemDump\n.\njava\n:\n29\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n    \n===\nLines\n \nRemoved\n===\n\n\n        \nname\n:\n          \nGC\n \nSlave\n\n        \nid\n:\n            \n16860\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x3001b980\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nWAITING\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nWAITING\n \nWAITING_INDEFINITELY\n \nIN_OBJECT_WAIT\n\n          \nwaiting\n \nto\n \nbe\n \nnotified\n \non\n:\n \n\"MM_ParallelDispatcher::slaveThread\"\n \nwith\n \nID\n \n0x1004cbc8\n \nowner\n \nname\n:\n \n<\nunowned\n>\n\n        \nJava\n \nstack\n \nframes\n:\n \n<\nno\n \nframes\n \nto\n \nprint\n>\n\n\n        \nname\n:\n          \nGC\n \nSlave\n\n        \nid\n:\n            \n16861\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x3001c180\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nWAITING\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nWAITING\n \nWAITING_INDEFINITELY\n \nIN_OBJECT_WAIT\n\n          \nwaiting\n \nto\n \nbe\n \nnotified\n \non\n:\n \n\"MM_ParallelDispatcher::slaveThread\"\n \nwith\n \nID\n \n0x1004cbc8\n \nowner\n \nname\n:\n \n<\nunowned\n>\n\n        \nJava\n \nstack\n \nframes\n:\n \n<\nno\n \nframes\n \nto\n \nprint\n>\n\n\n        \nname\n:\n          \nSignal\n \nDispatcher\n\n        \nid\n:\n            \n16847\n\n        \nThread\n \nobject\n:\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n \n@\n \n0x3000f268\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nRUNNABLE\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nRUNNABLE\n\n        \nJava\n \nstack\n \nframes\n:\n\n         \nbp\n:\n \n0x00000000000df748\n  \nmethod\n:\n \nint\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n.\nwaitForSignal\n()\n  \n(\nNative\n \nMethod\n)\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x00000000000df788\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n.\nrun\n()\n  \nsource\n:\n \nSignalDispatcher\n.\njava\n:\n54\n\n          \nobjects\n:\n \n0x30015828\n \n0x30015828\n\n    \n===\nLines\n \nRemoved\n===\n\n\n\n    \n>\n \ninfo\n \nheap\n \n*\n\n\n             \nHeap\n \n#\n1\n:\n  \nGenerational\n@\nfff78303d30\n\n              \nSection\n \n#\n1\n:\n  \nHeap\n \nextent\n \nat\n \n0x100d0000\n \n(\n0x300000\n \nbytes\n)\n\n               \nSize\n:\n        \n3145728\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n              \nSection\n \n#\n2\n:\n  \nHeap\n \nextent\n \nat\n \n0x2ffd0000\n \n(\n0x80000\n \nbytes\n)\n\n               \nSize\n:\n        \n524288\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n              \nSection\n \n#\n3\n:\n  \nHeap\n \nextent\n \nat\n \n0x30050000\n \n(\n0x80000\n \nbytes\n)\n\n               \nSize\n:\n        \n524288\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n\n    \n>\n \ninfo\n \nclass\n \njava\n/\nlang\n/\nString\n\n    \nname\n \n=\n \njava\n/\nlang\n/\nString\n\n\n            \nID\n \n=\n \n0x37c00\n    \nsuperID\n \n=\n \n0x30300\n\n            \nclassLoader\n \n=\n \n0x2ffe9b58\n    \nmodifiers\n:\n \npublic\n \nfinal\n\n\n            \nnumber\n \nof\n \ninstances\n:\n     \n2146\n\n            \ntotal\n \nsize\n \nof\n \ninstances\n:\n \n51504\n \nbytes\n\n\n    \nInheritance\n \nchain\n....\n\n            \njava\n/\nlang\n/\nObject\n\n               \njava\n/\nlang\n/\nString\n\n\n    \nFields\n......\n\n              \nstatic\n \nfields\n \nfor\n \n\"java/lang/String\"\n\n                \nprivate\n \nstatic\n \nfinal\n \nlong\n \nserialVersionUID\n \n=\n \n-\n6849794470754667710\n \n(\n0xa0f0a4387a3bb342\n)\n\n                \npublic\n \nstatic\n \nfinal\n \njava\n.\nutil\n.\nComparator\n \nCASE_INSENSITIVE_ORDER\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0278\n\n                \nprivate\n \nstatic\n \nfinal\n \nchar\n[]\n \nascii\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd02c8\n\n                \nprivate\n \nstatic\n \nString\n[]\n \nstringArray\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0298\n\n                \nprivate\n \nstatic\n \nfinal\n \nint\n \nstringArraySize\n \n=\n \n10\n \n(\n0xa\n)\n\n                \nstatic\n \nboolean\n \nenableCopy\n \n=\n \nfalse\n\n                \nprivate\n \nstatic\n \nint\n \nseed\n \n=\n \n-\n126504465\n \n(\n0xfffffffff875b1ef\n)\n\n                \nprivate\n \nstatic\n \nchar\n[]\n \nstartCombiningAbove\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0c40\n\n                \nprivate\n \nstatic\n \nchar\n[]\n \nendCombiningAbove\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0cc0\n\n                \nprivate\n \nstatic\n \nfinal\n \nchar\n[]\n \nupperValues\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0d40\n\n                \nprivate\n \nstatic\n \nfinal\n \njava\n.\nio\n.\nObjectStreamField\n[]\n \nserialPersistentFields\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0920\n\n\n              \nnon\n-\nstatic\n \nfields\n \nfor\n \n\"java/lang/String\"\n\n                \nprivate\n \nfinal\n \nchar\n[]\n \nvalue\n\n                \nprivate\n \nfinal\n \nint\n \noffset\n\n                \nprivate\n \nfinal\n \nint\n \ncount\n\n                \nprivate\n \nint\n \nhashCode\n\n                \nprivate\n \nint\n \nhashCode32\n\n\n    \nMethods\n......\n\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \n:\n  \nprivate\n \nstatic\n \nnative\n \nint\n \ngetSeed\n()\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8ce48\n \n--\n \nfff76d8ce5e\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n()\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8ce88\n \n--\n \nfff76d8cecd\n:\n  \nprivate\n \nvoid\n \n<\ninit\n>\n(\nString\n,\n \nchar\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf10\n \n--\n \nfff76d8cf19\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[])\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf40\n \n--\n \nfff76d8cf4a\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf7c\n \n--\n \nfff76d8cfb5\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cff8\n \n--\n \nfff76d8d065\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n,\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8d0c4\n \n--\n \nfff76d8d10c\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n,\n \nString\n)\n\n    \n===\nLines\n \nRemoved\n===\n\n\n    \n>\n \nwhatis\n  \n0x2ffd0298\n\n            \nheap\n \n#\n1\n \n-\n \nname\n:\n \nGenerational\n@\nfff78303d30\n\n                    \n0x2ffd0298\n \nis\n \nwithin\n \nheap\n \nsegment\n:\n \n2ff\nd0000\n \n--\n \n30050000\n\n                    \n0x2ffd0298\n \nis\n \nthe\n \nstart\n \nof\n \nan\n \nobject\n \nof\n \ntype\n \n[\nLjava\n/\nlang\n/\nString\n;",
+            "text": "Dump viewer (\njdmpview\n)\n\n\nThe dump viewer is a command-line tool that allows you to examine the contents of system dumps produced from the OpenJ9 VM. The dump viewer allows you to view both Java\u2122 and native information from the time the dump was produced.\n\n\nFor long running tasks, the dump viewer can also be run in batch mode.\n\n\nThe dump viewer is useful for diagnosing \nOutOfMemoryError\n exceptions in Java\u2122 applications. For problems like general protection faults (GPF), system abends, and SIGSEVs, a system debugger such as \ngdb\n (Linux) provides more information.\n\n\nSyntax\n\n\nStarting the dump viewer\n\n\njdmpview -core <core file>\n\n\n\n\n\nWhere \n<core file>\n specifies a dump file.                                                                                 \n\n\nOn z/OS\u00ae, you can copy the dump to an HFS file and supply that as input to \njdmpview\n, or you can supply a fully qualified MVS\u2122 data set name. For example:\n\n\n> jdmpview -core USER1.JVM.TDUMP.SSHD6.D070430.T092211\nDTFJView version 4.28.3, using DTFJ version 1.11.28004\nLoading image from DTFJ...\n\n\n\n\n\nMVS data set names may contain the dollar sign ($). Names that contain a dollar sign must be enclosed by single quotation marks ('). For example:\n\n\n> jdmpview -core 'USER1.JVM.$TDUMP.SSH$D7.D141211.T045506'\n\n\n\n\n\nAfter \njdmpview\n processes the dump files, a session starts, showing this message:\n\n\nFor a list of commands, type \"help\"; for how to use \"help\", type \"help help\"\n>\n\n\n\n\n\nIf you run the \njdmpview\n tool on a compressed file that contains multiple dumps, the tool detects and shows all the dump files, whether these are system dumps, Java dumps, or heap dumps. Because of this behavior, more than one context might be displayed when you start \njdmpview\n. To switch context, type \ncontext <n>\n, where \n<n>\n is the context value for the dump you want to investigate.\n\n\nOn z/OS, a system dump can contain multiple address spaces and an address space can contain multiple VM instances. In this case, the context allows you to select the address space and VM instance within the dump file. The following z/OS example shows address spaces (\nASID\n), with two JVMs occupying address space \n0x73\n (context 5 and 6). The current context is 5 (\nCTX:5>\n), shown with an asterisk. To view the JVM in context 6, you can switch by specifying \ncontext 6\n.  \n\n\nCTX\n:\n5\n>\n \ncontext\n\n\nAvailable\n \ncontexts\n \n(*\n \n=\n \ncurrently\n \nselected\n \ncontext\n)\n \n:\n\n\n\n0\n \n:\n \nASID\n:\n \n0x1\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n1\n \n:\n \nASID\n:\n \n0x3\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n2\n \n:\n \nASID\n:\n \n0x4\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n3\n \n:\n \nASID\n:\n \n0x6\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n4\n \n:\n \nASID\n:\n \n0x7\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n*\n5\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x83d2053a0\n \n:\n \nJRE\n \n1.8\n.\n0\n \nz\n/\nOS\n \ns390x\n-\n64\n \nbuild\n \n20181117\n_128845\n \n(\npmz6480\n-\n20181120\n_01\n)\n\n\n6\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x8004053a0\n \n:\n \nJRE\n \n1.8\n.\n0\n \nz\n/\nOS\n \ns390x\n-\n64\n \nbuild\n \n20181117\n_128845\n \n(\npmz6480\n-\n20181120\n_01\n)\n\n\n7\n \n:\n \nASID\n:\n \n0x73\n \nEDB\n:\n \n0x4a7bd9e8\n \n:\n \nNo\n \nJRE\n\n\n8\n \n:\n \nASID\n:\n \n0xffff\n \n:\n \nNo\n \nJRE\n \n:\n \nNo\n \nJRE\n\n\n\n\n\n\nIf you are using \njdmpview\n to view Java dumps and heap dumps, some options do not produce any output. For example, a heap dump doesn't contain the information requested by the \ninfo system\n command, but does contain information requested by the \ninfo class\n command.\n\n\nIf you are viewing a dump where there are a large number of objects on the heap, you can speed up the performance of \njdmpview\n by ensuring that your system has enough memory available and does not need to page memory to disk. To achieve this, start \njdmpview\n with a larger heap size by specifying the \n-Xmx\n option. Use the \n-J\n option to pass the \n-Xmx\n command line option to the JVM. For example:\n\n\njdmpview -J-Xmx<n> -core <core file>\n\n\n\n\n\nThe options available to the dump viewer session are shown under \nSession parameters\n\n\nStarting in batch mode\n\n\nFor long running or routine jobs, \njdmpview\n can be used in batch mode.\n\n\nYou can run a single command without specifying a command file by appending the command to the end of the \njdmpview\n command line. For example:\n\n\njdmpview -core mycore.dmp info class\n\n\n\n\n\nWhen specifying jdmpview commands that accept a wildcard parameter, you must replace the wildcard symbol with \nALL\n to prevent the shell interpreting the wildcard symbol. For example, in interactive mode, the command \ninfo thread *\n must be specified in the following way:\n\n\njdmpview -core mycore.dmp info thread ALL\n\n\n\n\n\nBatch mode is controlled with the following command line options:\n\n\n\n\n\n\n\n\nOption\n\n\nExplanation\n\n\n\n\n\n\n\n\n\n\n-cmdfile <path to command file>\n\n\nA file that contains a series of jdmpview commands, which are read and run sequentially.\n\n\n\n\n\n\n-charset <character set name>\n\n\nThe character set for the commands specified in -cmdfile (name must be a supported charset as defined in java.nio.charset.Charset. For example, US-ASCII)\n\n\n\n\n\n\n-outfile <path to output file>\n\n\nThe file to record any output generated by commands.\n\n\n\n\n\n\n-overwrite\n\n\nIf the file specified in -outfile exists, this option overwrites the file.\n\n\n\n\n\n\n-append\n\n\nIf the file specified in -outfile exists, new output messages are appended to the end of that file. The -append and -overwrite options cannot be used at the same time.\n\n\n\n\n\n\n\n\nThe command file can have empty lines that contain spaces, or comment lines that start with // or #. These lines are ignored by jdmpview. Example command file:\n\n\n// commands.txt\ninfo system\ninfo proc\n\n\n\n\n\nTo run jdmpview in batch mode, using this command file, specify:\n\n\njdmpview -outfile out.txt [-overwrite|-append] -cmdfile commands.txt -core <path to core file>\n\n\n\n\n\nWhen the output file exists, you need to specify either the \n-overwrite\n option or the \n-append\n option. If you do not, an error message is generated.\n\n\nProcessing output\n\n\nYou can redirect command output to a file, or pipe the command output to another command.\n\n\nTo redirect jdmpview command output to a file, use one of the following formats:\n\n\ncommand > <target_file>\n\n\n\n\n\nIf the target file exists, this redirection overwrites the content within it.\n\n\ncommand >> <target_file>\n\n\n\n\n\nIf the target file exists, this redirection appends the output to it.\n\n\nWhere \n<target_file>\n is the file name, which can include the full path to the file.\n\n\nTo pipe \njdmpview\n command output to another command, use the vertical bar (|) character. For example:\n\n\ncommand | grep string\n\n\n\n\n\nYou can chain more than two commands together by using multiple vertical bar characters.\n\n\nThe following commands can be used to interrogate the output:\n\n\n\n\ncharsFrom\n\n\ncharsTo\n\n\ngrep\n\n\ntokens\n\n\n\n\nUsing \nCharsFrom\n\n\nUse the \ncharsFrom\n command after the vertical bar character to exclude all characters that come before a specified pattern in a resulting line.\n\n\ncharsFrom <options> pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-e\n or \n-exclude\n : Exclude the matched pattern from the resulting line. By default, the matched pattern is included in the resulting line.\n\n\n-keep\n : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.\n\n\n-i\n or \n-ignoreCase\n : Ignore case.\n\n\n\n\nFor example, the following command displays resulting lines that contain the pattern \njre\n, and trims each line to exclude all characters that come before this pattern:\n\n\n> info mod | charsFrom jre\njre/lib/ppc64/libzip.so @ 0x0, sections:\njre/lib/ppc64/libdbgwrapper80.so @ 0x0, sections:\njre/lib/ppc64/libverify.so @ 0x0, sections:\njre/lib/ppc64/libjava.so @ 0x0, sections:\njre/lib/ppc64/compressedrefs/libjclse7b_28.so @ 0x0, sections:\n\n\n\n\n\nUsing \nCharsTo\n\n\nUse the \nCharsTo\n command after the vertical bar character to include the characters in a resulting line until a specific pattern is found.\n\n\ncharsTo <options> pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-include\n : Include the matched pattern in the resulting line. By default, the matched pattern is excluded from the resulting line.\n\n\n-keep\n : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.\n\n\n-i\n or \n-ignoreCase\n : Ignore case.\n\n\n\n\nFor example, the following command displays lines that contain the pattern \"@\", and trims each line to exclude all characters from \"@\" onwards:\n\n\n> info mod | charsTo @\nbin/java\n/usr/lib64/gconv/UTF-16.so\n/test/sdk/lib/ppc64le/libnet.so\n/test/sdk/lib/ppc64le/libnio.so\n/test/sdk/lib/ppc64le/libzip.so\n/test/sdk/lib/ppc64le/libjsig.so\nlibjsig.so\n\n\n\n\n\nYou can also use \ncharsFrom\n and \ncharsTo\n together, separated by a vertical bar character. For example, the following command displays lines that contain the pattern \"lib\", and trims each line to exclude all characters that come before this pattern, as well as all characters from the pattern \n@\n :\n\n\n> info mod | charsFrom lib | charsTo @\nlib/ppc64le/libzip.so\nlib/ppc64le/libjsig.so\nlib/ppc64le/libverify.so\nlib/ppc64le/libjava.so\nlib/ppc64le/compressedrefs/libj9jit29.so\n\n\n\n\n\n \nNote:\n The line will not be displayed if the \ncharsFrom\n and \ncharsTo\n are used together, but only one of the patterns are matched in a line. Furthermore, the line will not be displayed if both patterns are matched in a line, but the \ncharsTo\n pattern appears before, and not after, the \ncharsFrom\n pattern.\n\n\nUsing \ngrep\n\n\nUse the \ngrep\n command after the vertical bar character to show which lines match a specified pattern.\n\n\ngrep <options> pattern\n\n\n\n\n\nWhere \n<options>\n:\n\n\n\n\n-i\n : Ignore case.\n\n\n-r\n, \n-G\n, or \n--regex\n: Use a regular expression as defined in the Java documentation of the java.utils.regex.Pattern class.\n\n\n-b\n or \n--block\n : Show blocks of lines where at least one of the lines matches the pattern. Blocks of lines are separated by empty lines.\n\n\n-A\n <NUM> or +<NUM> : Show at most <NUM> lines after the matching line. For example grep -A 2 pattern or grep +2 pattern.\n\n\n-B\n <NUM> or -<NUM> : Show at most <NUM> lines before the matching line.\n\n\n-C\n <NUM> or +-<NUM> : Show at most <NUM> lines before and after the matching line.\n\n\n-v\n or \n--invert-match\n : Use with the grep command to show lines that do not match the pattern. These options are equivalent to the grep- command.\n\n\n-F\n or \n--fixed-strings\n : Do not treat the asterisk (*) as a wildcard character. Use these options with the \n-r\n, \n-G\n, or \n--regex\n options.\n\n\n\n\nPattern rules:\n\n\n\n\nAn asterisk (*) in a pattern is treated as a wildcard character unless you specify the \n-F\n or \n--fixed-strings\n options.\n\n\nIf a pattern contains spaces, enclose the pattern in a pair of double quotation marks (\").\n\n\nIf a pattern contains double quotation marks, enclose the pattern in a pair of single quotation marks (').\n\n\n\n\nYou can specify multiple sub-patterns to match by using the following format, but only if you do not use the \n-r\n, \n-G\n, or \n--regex\n options:\n\n\n\"[pattern1|pattern2|...|patternN]\"\n\n\nThe initial and trailing double quotation marks and brackets ([ ]) are required. Use a vertical bar character to separate the sub-patterns. Quotation marks and the vertical bar are not allowed in a sub-pattern. Spaces are allowed in the middle of a sub-pattern, but leading and trailing spaces will be trimmed.\n\n\n\n\n\n\nUse the \ngrep\n command to show lines that do not match the pattern.\n\n\n\n\n\n\nFor example, the following command displays the number of instances and total heap size for the \njava/lang/String\n class:\n\n\n> info class | grep java/lang/String              \n94 7688 [Ljava/lang/String;            \n1822 58304 java/lang/String               \n1 16 java/lang/String$CaseInsensitiveComparator               \n0 0 java/lang/String$UnsafeHelpers\n\n\n\n\n\nThe following command uses two pipes in combination to display the number of instances and total heap size for the \njava/lang/StringCoding.StringDecoder\n class:\n\n\n> info class | grep java/lang/String | grep -i decoder\n1 48 java/lang/StringCoding$StringDecoder\n\n\n\n\n\nUsing \ntokens\n\n\nUse the \ntokens\n command after the vertical bar character to isolate specified tokens in the resulting lines.\n\n\ntokens [options] range[,range][..range]\n\n\n\n\n\nYou can define range in the following formats:\n\n\n\n\nx\n\n\nx,y\n\n\nx..y\n\n\n\n\nA set of rules applies to these formats:\n\n\n\n\nx or y can be prefixed with \"-\". This means that x or y are counting backwards from the end of a list. For example, a y value of -1 represents the last token in a list, while -2 represents the penultimate token in a list.\n\n\nx must represent a token that either precedes or is at the same position as y.\n\n\n\n\nIn this format, if x is omitted, it is assumed to be '1'. If y is omitted, it is assumed to be '-1'.\n\n\nFor example, the following command displays the first and second token for each resulting line:\n\n\n> info mmap | grep -r ^0x | tokens 1,2\n0x0000000000012fff 0x000000000000d000\n0x0000000000017fff 0x0000000000004000\n0x00000000009dafff 0x0000000000018000\n0x00000000009fffff 0x000000000001f000\n0x0000000000cbefff 0x0000000000002000\n0x0000000000d76fff 0x0000000000001000\n0x0000000003145fff 0x0000000000071000\n0x0000000003b93fff 0x0000000000003000\n\n\n\n\n\nSession parameters\n\n\nWhen \njdmpview\n is started, many parameters can be used during the session to interrogate the system dump data, which are divided into \ngeneral\n and \nexpert\n parameters. The \ngeneral\n parameters are documented in this section. To see a list of \nexpert\n parameters, use the \n!j9help\n option.\n\n\n!j9help\n\n\n    !j9help\n\n\n\n\n\n\n\nLists all \nexpert\n parameters that can be used in a session, with a brief description.\n\n\n\n\ncd\n\n\n    cd <directory_name>\n\n\n\n\n\n\n\nChanges the working directory to \n<directory_name>\n. The working directory is used for log files. Logging is controlled by the \nset logging\n command. Use the \npwd\n command to query the current working directory.\n\n\n\n\ncmdfile\n\n\n    cmdfile <directory_name>\n\n\n\n\n\n\n\nRuns all of the commands in a file. The commands are read line by line and run sequentially. Empty lines, and lines that start with \n//\n or \n#\n, are ignored. Use the option charset to identify the character set that is used in the chosen file. The character set must be supported, as defined in \njava.nio.charset.Charset\n, such as \nUS-ASCII\n.\n\n\n\n\ndeadlock\n\n\n\n\n\n\nThis command detects deadlock situations in the Java application that was running when the system dump was produced. Example output:\n\n\ndeadlock loop:\nthread: Thread-2 (monitor object: 0x9e32c8) waiting for =>\nthread: Thread-3 (monitor object: 0x9e3300) waiting for =>\nthread: Thread-2 (monitor object: 0x9e32c8)\n\n\n\n\n\nIn this example, the deadlock analysis shows that \nThread-2\n is waiting for a lock held by \nThread-3\n, which is in turn waiting for a lock held earlier by \nThread-2\n.\n\n\nThreads are identified by their Java thread name, whereas object monitors are identified by the address of the object in the Java heap. You can obtain further information about the threads using the \ninfo thread *\n command. You can obtain further information about the monitors using the \nx/J <0xaddr>\n command.\n\n\n\n\n\n\nfind\n\n\n    find <pattern>,<start_address>,<end_address>,<memory_boundary>, <bytes_to_print>,<matches_to_display>\n\n\n\n\n\n\n\n\n\nThis command searches for \n<pattern>\n in the memory segment from \n<start_address>\n to \n<end_address>\n (both inclusive), and shows the number of matching addresses you specify with \n<matches_to_display>\n. You can also display the next \n<bytes_to_print>\n bytes for the last match.\n\n\nBy default, the \nfind\n command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify \n<memory_boundary>\n to search every \n<memory_boundary>\n bytes. For example, if you specify a \n<memory_boundary>\n of \"4\", the command searches for the pattern every 4 bytes.\n\n\n\n\n\n\nfindnext\n\n\n    findptr <pattern>,<start_address>,<end_address>,<memory_boundary>,<bytes_to_print>,<matches_to_display>\n\n\n\n\n\n\n\n\n\nFinds the next instance of the last string passed to \nfind\n or \nfindptr\n. It repeats the previous \nfind\n or \nfindptr\n command, depending on which one was issued last, starting from the last match.\n\n\nSearches memory for the given pointer. \nfindptr\n searches for \n<pattern>\n as a pointer in the memory segment from \n<start_address>\n to \n<end_address>\n (both inclusive), and shows the number of matching addresses you specify with \n<matches_to_display>\n. You can also display the next \n<bytes_to_print>\n bytes for the last match.\n\n\nBy default, the \nfindptr\n command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify \n<memory_boundary>\n to search every \n<memory_boundary>\n bytes. For example, if you specify a \n<memory_boundary>\n of \"4\", the command searches for the pattern every 4 bytes.\n\n\n\n\n\n\nhelp\n\n\n    help [<command_name>]\n\n\n\n\n\n\n\nShows information for a specific command. If you supply no parameters, help shows the complete list of supported commands.\n\n\n\n\nhistory\n\n\n    history|his [-r][<N>]\n\n\n\n\n\n\n\nRecalls and displays the history of commands that you have run. The default behavior is to display the 20 most recent commands. If you use the argument \n<N>\n, then N commands are displayed. For example, if you run history 35, then the 35 most recent commands are displayed. You can also use the \n-r\n option with \n<N>\n to run the Nth most recent command in your history. Using the \n-r\n option alone runs the most recent command in your history.\n\n\n\n\ninfo thread\n\n\n    info thread [*|all|<native_thread_ID>|<zos_TCB_address>]\n\n\n\n\n\n\n\n\n\nDisplays information about Java and native threads. The following information is displayed for all threads (\"*\"), or the specified thread:\n\n\n\n\nThread id\n\n\nRegisters\n\n\nStack sections\n\n\nThread frames: procedure name and base pointer\n\n\nThread properties: list of native thread properties and their values. For example: thread priority.\n\n\nAssociated Java thread, if applicable:\n\n\nName of Java thread\n\n\nAddress of associated \njava.lang.Thread\n object\n\n\nState (shown in JVMTI and \njava.lang.Thread.State\n formats)\n\n\nThe monitor the thread is waiting for\n\n\nThread frames: base pointer, method, and filename:line\n\n\n\n\n\n\n\n\nIf you supply no parameters, the command shows information about the current thread.\n\n\n\n\n\n\ninfo system\n\n\n\n\n\n\nDisplays the following information about the system that produced the core dump:\n\n\n\n\nAmount of memory\n\n\nOperating system\n\n\nVirtual machine or virtual machines present\n\n\n\n\n\n\n\n\ninfo class\n\n\n    info class [<class_name>] [-sort:<name>|<count>|<size>]\n\n\n\n\n\n\n\nDisplays the inheritance chain and other data for a given class.\n\n\n\n\nIf a class name is passed to info class, the following information is shown about that class:\n\n\n- Name\n- ID\n- Superclass ID\n- Class loader ID\n- Modifiers\n- Number of instances and total size of instances\n- Inheritance chain\n- Fields with modifiers (and values for static fields)\n- Methods with modifiers\n\nIf no parameters are passed to `info class`, the following information is shown:\n\n- The number of instances of each class.\n- The total size of all instances of each class.\n- The class name\n- The total number of instances of all classes.\n- The total size of all objects.\n\nThe `sort` option allows the list of classes to be sorted by name (default), by number of instances of each class, or by the total size of instances of each class.\n\n\n\n\n\ninfo proc\n\n\n\n\n\n\nDisplays threads, command-line arguments, environment variables, and shared modules of the current process.\n\n\nTo view the shared modules used by a process, use the \ninfo sym\n command.\n\n\n\n\n\n\ninfo jitm\n\n\n\n\n\n\nDisplays JIT compiled methods and their addresses:\n\n\n\n\nMethod name and signature\n\n\nMethod start address\n\n\nMethod end address\n\n\n\n\n\n\n\n\ninfo lock\n\n\n\n\nDisplays a list of available monitors and locked objects.\n\n\n\n\ninfo sym\n\n\n\n\nDisplays a list of available modules. For each process in the address spaces, this command shows a list of module sections for each module, their start and end addresses, names, and sizes.\n\n\n\n\ninfo mmap\n\n\n    info mmap [<address>] [-verbose] [-sort:<size>|<address>]\n\n\n\n\n\n\n\nDisplays a summary list of memory sections in the process address space, with start and end address, size, and properties. If an address parameter is specified, the results show details of only the memory section containing the address. If \n-verbose\n is specified, full details of the properties of each memory section are displayed. The \n-sort\n option allows the list of memory sections to be sorted by size or by start address (default).\n\n\n\n\ninfo heap\n\n\n    info heap [*|<heap_name>*]\n\n\n\n\n\n\n\n\n\nIf no parameters are passed to this command, the heap names and heap sections are shown.\n\n\nUsing either \"*\" or a heap name shows the following information about all heaps or the specified heap:\n\n\n\n\nHeap name\n\n\n(Heap size and occupancy)\n\n\nHeap sections\n\n\nSection name\n\n\nSection size\n\n\nWhether the section is shared\n\n\nWhether the section is executable\n\n\nWhether the section is read only\n\n\n\n\n\n\n\n\nheapdump\n\n\n    heapdump [<heaps>]\n\n\n\n\n\n\n\nGenerates a Java heap dump to a file. You can select which Java heaps to dump by listing the heap names, separated by spaces. To see which heaps are available, use the \ninfo heap\n command. By default, all Java heaps are dumped.\n\n\n\n\nhexdump\n\n\n    hexdump <hex_address> <bytes_to_print>\n\n\n\n\n\n\n\nDisplays a section of memory in a hexdump-like format. Displays \n<bytes_to_print>\n bytes of memory contents starting from \n<hex_address>\n.\n\n\n\n\n+\n\n\n\n\nDisplays the next section of memory in hexdump-like format. This command is used with the hexdump command to enable easy scrolling forwards through memory. The previous hexdump command is repeated, starting from the end of the previous one.\n\n\n\n\n-\n\n\n\n\nDisplays the previous section of memory in hexdump-like format. This command is used with the hexdump command to enable easy scrolling backwards through memory. The previous hexdump command is repeated, starting from a position before the previous one.\n\n\n\n\npwd\n\n\n\n\nDisplays the current working directory, which is the directory where log files are stored.\n\n\n\n\nquit\n\n\n\n\nExits the core file viewing tool; any log files that are currently open are closed before exit.\n\n\n\n\nset heapdump\n\n\n\n\nConfigures Heapdump generation settings.\nset heapdump <options>\n\n\n\n\n\n\n\n\n\nwhere \n<options>\n are:\n\n\n\n\nphd\n: Set the Heapdump format to Portable Heapdump, which is the default.\n\n\ntxt\n: Set the Heapdump format to classic.\n\n\nfile <file>\n: Set the destination of the Heapdump.\n\n\nmultiplefiles [on|off]\n: If multiplefiles is set to on, each Java heap in the system dump is written to a separate file. If multiplefiles is set to off, all Java heaps are written to the same file. The default is off.\n\n\n\n\n\n\n\n\nset logging\n\n\n    set logging <options>\n\n\n\n\n\n\n\n\n\nConfigures logging settings, starts logging, or stops logging. This parameter enables the results of commands to be logged to a file, where \n<options>\n are:\n\n\n\n\n[on|off]\n: Turns logging on or off. (Default: off)\n\n\nfile <filename>\n: Sets the file to log to. The path is relative to the directory returned by the pwd command, unless an absolute path is specified. If the file is set while logging is on, the change takes effect the next time logging is started. Not set by default.\n\n\noverwrite [on|off]\n: Turns overwriting of the specified log file on or off. When overwrite is off, log messages are appended to the log file. When overwrite is on, the log file is overwritten after the set logging command. (Default: off)\n\n\nredirect [on|off]\n: Turns redirecting to file on or off, with off being the default. When logging is set to on:\n\n\nA value of on for redirect sends non-error output only to the log file.\n\n\nA value of off for redirect sends non-error output to the console and log file.\n\n\n\n\nRedirect must be turned off before logging can be turned off. (Default: off)\n\n\n\n\n\n\nshow heapdump\n\n\n\n\nDisplays the current Heapdump generation settings.\n\n\n\n\nshow logging\n\n\n\n\n\n\nDisplays the current logging settings:\n\n\n\n\nset_logging = [on|off]\n\n\nset_logging_file =\n\n\nset_logging_overwrite = [on|off]\n\n\nset_logging_redirect = [on|off]\n\n\ncurrent_logging_file =\n\n\n\n\nThe file that is currently being logged to might be different from set_logging_file, if that value was changed after logging was started.\n\n\n\n\n\n\nwhatis \n<hex_address>\n\n\n\n\nDisplays information about \nwhatis\n stored at the given memory address, \n<hex_address>\n. This command examines the memory location at \n<hex_address>\n and tries to find out more information about this address. For example:\n>\n \nwhatis\n \n0x8e76a8\n\n\n\nheap\n \n#\n1\n \n-\n \nname\n:\n \nDefault\n@19f\nce8\n\n\n0x8e76a8\n \nis\n \nwithin\n \nheap\n \nsegment\n:\n \n8\nb0000\n \n--\n \ncb0000\n\n\n0x8e76a8\n \nis\n \nstart\n \nof\n \nan\n \nobject\n \nof\n \ntype\n \njava\n/\nlang\n/\nThread\n\n\n\n\n\n\n\n\n\n\nx/ (examine)\n\n\n\n\n\n\nPasses the number of items to display and the unit size, as listed in the following table, to the sub-command. For example, \nx/12bd\n.\n\n\n\n\n\n\n\n\nAbbreviation\n\n\nUnit\n\n\nSize\n\n\n\n\n\n\n\n\n\n\nb\n\n\nByte\n\n\n8-bit\n\n\n\n\n\n\nh\n\n\nHalf word\n\n\n16-bit\n\n\n\n\n\n\nw\n\n\nWord\n\n\n32-bit\n\n\n\n\n\n\ng\n\n\nGiant word\n\n\n64-bit\n\n\n\n\n\n\n\n\nThis command is similar to the use of the \nx/\n command in gdb, including the use of defaults.\n\n\n\n\n\n\nx/J [<class_name>|<0xaddr>]\n\n\n\n\n\n\nDisplays information about a particular object, or all objects of a class. If \n<class_name>\n is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.\n\n\n \nNote:\n This command ignores the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/D <0xaddr>\n\n\n\n\n\n\nDisplays the integer at the specified address, adjusted for the hardware architecture this dump file is from. For example, the file might be from a big endian architecture.\n\n\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/X <0xaddr>\n\n\n\n\n\n\nDisplays the hex value of the bytes at the specified address, adjusted for the hardware architecture this dump file is from. For example, the file might be from a big endian architecture.\n\n\n \nNote:\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nx/K <0xaddr>\n\n\n\n\n\n\nWhere the size is defined by the pointer size of the architecture, this parameter shows the value of each section of memory. The output is adjusted for the hardware architecture this dump file is from, starting at the specified address. It also displays a module with a module section and an offset from the start of that module section in memory if the pointer points to that module section. If no symbol is found, it displays a \"*\" and an offset from the current address if the pointer points to an address in 4KB (4096 bytes) of the current address. Although this command can work on an arbitrary section of memory, it is probably more useful on a section of memory that refers to a stack frame. To find the memory section of a thread stack frame, use the info thread command.\n\n\n \nNote:\n This command uses the number of items and unit size passed to it by the \nx/\n command.\n\n\n\n\n\n\nExample\n\n\nThis example session illustrates a selection of the commands available and their use.\n\n\nIn the example session, which is generated on a Linux system, some lines have been removed for clarity (and terseness).\n\n\nUser input is prefaced by a greater than symbol (>).\n\n\n    \ntest\n@\nmadras\n:\n~/\ntest\n>\n \nsdk\n/\nbin\n/\njdmpview\n \n-\ncore\n \ncore\n.20121116.154147.16838.0001\n.\ndmp\n\n    \nDTFJView\n \nversion\n \n4.27.57\n,\n \nusing\n \nDTFJ\n \nversion\n \n1.10.27022\n\n    \nLoading\n \nimage\n \nfrom\n \nDTFJ\n...\n\n\n    \nFor\n \na\n \nlist\n \nof\n \ncommands\n,\n \ntype\n \n\"help\"\n;\n \nfor\n \nhow\n \nto\n \nuse\n \n\"help\"\n,\n \ntype\n \n\"help help\"\n\n    \nAvailable\n \ncontexts\n \n(\n*\n \n=\n \ncurrently\n \nselected\n \ncontext\n)\n \n:\n\n\n    \nSource\n \n:\n \nfile\n:\n///home/test/core.20121116.154147.16838.0001.dmp\n\n            \n*\n0\n \n:\n \nPID\n:\n \n16867\n \n:\n \nJRE\n \n1.8.0\n \nLinux\n \nppc64\n-\n64\n \nbuild\n \n20121115\n_128521\n \n(\npxp6480\n-\n20121116\n_01\n \n)\n\n\n    \n>\n \nhelp\n\n    \n+\n                                              \ndisplays\n \nthe\n \nnext\n \nsection\n \nof\n \nmemory\n \nin\n \nhexdump\n-\nlike\n \nformat\n\n    \n-\n                                              \ndisplays\n \nthe\n \nprevious\n \nsection\n \nof\n \nmemory\n \nin\n \nhexdump\n-\nlike\n \nformat\n\n    \ncd\n                                             \nchanges\n \nthe\n \ncurrent\n \nworking\n \ndirectory\n,\n \nused\n \nfor\n \nlog\n \nfiles\n\n    \nclose\n                     \n[\ncontext\n \nid\n]\n         \ncloses\n \nthe\n \nconnection\n \nto\n \na\n \ncore\n \nfile\n\n    \ncontext\n                   \n[\nID\n|\nasid\n \nID\n]\n         \nswitch\n \nto\n \nthe\n \nselected\n \ncontext\n\n    \ndeadlock\n                                       \ndisplays\n \ninformation\n \nabout\n \ndeadlocks\n \nif\n \nthere\n \nare\n \nany\n\n    \nexit\n                                           \nExit\n \nthe\n \napplication\n\n    \nfind\n                                           \nsearches\n \nmemory\n \nfor\n \na\n \ngiven\n \nstring\n\n    \nfindnext\n                                       \nfinds\n \nthe\n \nnext\n \ninstance\n \nof\n \nthe\n \nlast\n \nstring\n \npassed\n \nto\n \n\"find\"\n\n    \nfindptr\n                                        \nsearches\n \nmemory\n \nfor\n \nthe\n \ngiven\n \npointer\n\n    \nheapdump\n                                       \ngenerates\n \na\n \nPHD\n \nor\n \nclassic\n \nformat\n \nheapdump\n\n    \nhelp\n                      \n[\ncommand\n \nname\n]\n       \ndisplays\n \nlist\n \nof\n \ncommands\n \nor\n \nhelp\n \nfor\n \na\n \nspecific\n \ncommand\n\n    \nhexdump\n                                        \noutputs\n \na\n \nsection\n \nof\n \nmemory\n \nin\n \na\n \nhexdump\n-\nlike\n \nformat\n\n    \ninfo\n                      \n<\ncomponent\n>\n          \nInformation\n \nabout\n \nthe\n \nspecified\n \ncomponent\n\n    \ninfo\n \nclass\n                \n<\nJava\n \nclass\n \nname\n>\n    \nProvides\n \ninformation\n \nabout\n \nthe\n \nspecified\n \nJava\n \nclass\n\n    \ninfo\n \nheap\n                 \n[\n*|\nheap\n \nname\n]\n        \nDisplays\n \ninformation\n \nabout\n \nJava\n \nheaps\n\n    \ninfo\n \njitm\n                                      \nDisplays\n \nJIT\n'\ned\n \nmethods\n \nand\n \ntheir\n \naddresses\n\n    \ninfo\n \nlock\n                                      \noutputs\n \na\n \nlist\n \nof\n \nsystem\n \nmonitors\n \nand\n \nlocked\n \nobjects\n\n    \ninfo\n \nmmap\n                                      \nOutputs\n \na\n \nlist\n \nof\n \nall\n \nmemory\n \nsegments\n \nin\n \nthe\n \naddress\n \nspace\n\n    \ninfo\n \nmod\n                                       \noutputs\n \nmodule\n \ninformation\n\n    \ninfo\n \nproc\n                                      \nshortened\n \nform\n \nof\n \ninfo\n \nprocess\n\n    \ninfo\n \nprocess\n                                   \ndisplays\n \nthreads\n,\n \ncommand\n \nline\n \narguments\n,\n \nenvironment\n\n    \ninfo\n \nsym\n                                       \nan\n \nalias\n \nfor\n \n'\nmod\n'\n\n    \ninfo\n \nsys\n                                       \nshortened\n \nform\n \nof\n \ninfo\n \nsystem\n\n    \ninfo\n \nsystem\n                                    \ndisplays\n \ninformation\n \nabout\n \nthe\n \nsystem\n \nthe\n \ncore\n \ndump\n \nis\n \nfrom\n\n    \ninfo\n \nthread\n                                    \ndisplays\n \ninformation\n \nabout\n \nJava\n \nand\n \nnative\n \nthreads\n\n    \nlog\n                       \n[\nname\n \nlevel\n]\n         \ndisplay\n \nand\n \ncontrol\n \ninstances\n \nof\n \njava\n.\nutil\n.\nlogging\n.\nLogger\n\n    \nopen\n                      \n[\npath\n \nto\n \ncore\n]\n       \nopens\n \nthe\n \nspecified\n \ncore\n \nfile\n\n    \nplugins\n                                        \nPlugin\n \nmanagement\n \ncommands\n\n                         \nlist\n                      \nShow\n \nthe\n \nlist\n \nof\n \nloaded\n \nplugins\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                       \nreload\n                      \nReload\n \nplugins\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                     \nshowpath\n                      \nShow\n \nthe\n \nDTFJ\n \nView\n \nplugin\n \nsearch\n \npath\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n                      \nsetpath\n                      \nSet\n \nthe\n \nDTFJ\n \nView\n \nplugin\n \nsearch\n \npath\n \nfor\n \nthe\n \ncurrent\n \ncontext\n\n    \npwd\n                                            \ndisplays\n \nthe\n \ncurrent\n \nworking\n \ndirectory\n\n    \nquit\n                                           \nExit\n \nthe\n \napplication\n\n    \nset\n                       \n[\nlogging\n|\nheapdump\n]\n   \nSets\n \noptions\n \nfor\n \nthe\n \nspecified\n \ncommand\n\n    \nset\n \nheapdump\n                                   \nconfigures\n \nheapdump\n \nformat\n,\n \nfilename\n \nand\n \nmultiple\n \nheap\n \nsupport\n\n    \nset\n \nlogging\n                                    \nconfigures\n \nseveral\n \nlogging\n-\nrelated\n \nparameters\n,\n \nstarts\n/\nstops\n \nlogging\n\n                           \non\n                      \nturn\n \non\n \nlogging\n\n                          \noff\n                      \nturn\n \noff\n \nlogging\n\n                         \nfile\n                      \nturn\n \non\n \nlogging\n\n                    \noverwrite\n                      \ncontrols\n \nthe\n \noverwriting\n \nof\n \nlog\n \nfiles\n\n    \nshow\n                      \n[\nlogging\n|\nheapdump\n]\n   \nDisplays\n \nthe\n \ncurrent\n \nset\n \noptions\n \nfor\n \na\n \ncommand\n\n    \nshow\n \nheapdump\n                                  \ndisplays\n \nheapdump\n \nsettings\n\n    \nshow\n \nlogging\n                                   \nshows\n \nthe\n \ncurrent\n \nlogging\n \noptions\n\n    \nwhatis\n                    \n[\nhex\n \naddress\n]\n        \ngives\n \ninformation\n \nabout\n \nwhat\n \nis\n \nstored\n \nat\n \nthe\n \ngiven\n \nmemory\n \naddress\n\n    \nx\n/\nd\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \ninteger\n \nat\n \nthe\n \nspecified\n \naddress\n\n    \nx\n/\nj\n                       \n<\nobject\n \naddress\n>\n \n[\nclass\n \nname\n]\n \ndisplays\n \ninformation\n \nabout\n \na\n \nparticular\n \nobject\n \nor\n \nall\n \nobjects\n \nof\n \na\n \nclass\n\n    \nx\n/\nk\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \nspecified\n \nmemory\n \nsection\n \nas\n \nif\n \nit\n \nwere\n \na\n \nstack\n \nframe\n \nparameters\n\n    \nx\n/\nx\n                       \n<\nhex\n \naddress\n>\n        \ndisplays\n \nthe\n \nhex\n \nvalue\n \nof\n \nthe\n \nbytes\n \nat\n \nthe\n \nspecified\n \naddress\n\n\n    \n>\n \nset\n \nlogging\n \nfile\n \nlog\n.\ntxt\n\n    \nlogging\n \nturned\n \non\n;\n \noutputting\n \nto\n \n\"/home/test/log.txt\"\n\n\n    \n>\n \ninfo\n \nsystem\n\n    \nMachine\n \nOS\n:\n     \nLinux\n\n    \nHypervisor\n:\n     \nPowerVM\n\n    \nMachine\n \nname\n:\n   \nmadras\n\n    \nMachine\n \nIP\n \naddress\n(\nes\n)\n:\n\n                    \n9.20.88.155\n\n    \nSystem\n \nmemory\n:\n  \n8269201408\n\n\n    \nDump\n \ncreation\n \ntime\n:\n \n2015\n/\n08\n/\n10\n \n14\n:\n44\n:\n36\n:\n01\n9\n\n    \nDump\n \ncreation\n \ntime\n \n(\nnanoseconds\n)\n:\n \n21314421467539\n\n\n    \nJava\n \nversion\n:\n\n    \nJRE\n \n1.8.0\n \nLinux\n \nppc64\n-\n64\n \nbuild\n \n20121115\n_128521\n \n(\npxp6490\n-\n20121116\n_01\n)\n\n\n    \nJVM\n \nstart\n \ntime\n:\n \n2015\n/\n08\n/\n10\n \n14\n:\n44\n:\n05\n:\n690\n\n    \nJVM\n \nstart\n \ntime\n \n(\nnanoseconds\n)\n:\n \n21284086192267\n\n\n    \n>\n \ninfo\n \nthread\n \n*\n\n    \nnative\n \nthreads\n \nfor\n \naddress\n \nspace\n\n     \nprocess\n \nid\n:\n \n16838\n\n\n      \nthread\n \nid\n:\n \n16839\n\n       \nregisters\n:\n\n\n       \nnative\n \nstack\n \nsections\n:\n\n       \nnative\n \nstack\n \nframes\n:\n\n       \nproperties\n:\n\n       \nassociated\n \nJava\n \nthread\n:\n\n        \nname\n:\n          \nmain\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x2ffd1e08\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nRUNNABLE\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nRUNNABLE\n\n        \nJava\n \nstack\n \nframes\n:\n\n         \nbp\n:\n \n0x0000000000085b28\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\njvm\n/\nDump\n.\nSystemDumpImpl\n()\n  \n(\nNative\n \nMethod\n)\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x0000000000085b40\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\njvm\n/\nDump\n.\nSystemDump\n()\n  \nsource\n:\n \nDump\n.\njava\n:\n41\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x0000000000085b68\n  \nmethod\n:\n \nvoid\n \nmySystemDump\n.\nmain\n(\nString\n[])\n  \nsource\n:\n \nmySystemDump\n.\njava\n:\n29\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n    \n===\nLines\n \nRemoved\n===\n\n\n        \nname\n:\n          \nGC\n \nSlave\n\n        \nid\n:\n            \n16860\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x3001b980\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nWAITING\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nWAITING\n \nWAITING_INDEFINITELY\n \nIN_OBJECT_WAIT\n\n          \nwaiting\n \nto\n \nbe\n \nnotified\n \non\n:\n \n\"MM_ParallelDispatcher::slaveThread\"\n \nwith\n \nID\n \n0x1004cbc8\n \nowner\n \nname\n:\n \n<\nunowned\n>\n\n        \nJava\n \nstack\n \nframes\n:\n \n<\nno\n \nframes\n \nto\n \nprint\n>\n\n\n        \nname\n:\n          \nGC\n \nSlave\n\n        \nid\n:\n            \n16861\n\n        \nThread\n \nobject\n:\n \njava\n/\nlang\n/\nThread\n \n@\n \n0x3001c180\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nWAITING\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nWAITING\n \nWAITING_INDEFINITELY\n \nIN_OBJECT_WAIT\n\n          \nwaiting\n \nto\n \nbe\n \nnotified\n \non\n:\n \n\"MM_ParallelDispatcher::slaveThread\"\n \nwith\n \nID\n \n0x1004cbc8\n \nowner\n \nname\n:\n \n<\nunowned\n>\n\n        \nJava\n \nstack\n \nframes\n:\n \n<\nno\n \nframes\n \nto\n \nprint\n>\n\n\n        \nname\n:\n          \nSignal\n \nDispatcher\n\n        \nid\n:\n            \n16847\n\n        \nThread\n \nobject\n:\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n \n@\n \n0x3000f268\n\n        \nPriority\n:\n      \n5\n\n        \nThread\n.\nState\n:\n  \nRUNNABLE\n\n        \nJVMTI\n \nstate\n:\n   \nALIVE\n \nRUNNABLE\n\n        \nJava\n \nstack\n \nframes\n:\n\n         \nbp\n:\n \n0x00000000000df748\n  \nmethod\n:\n \nint\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n.\nwaitForSignal\n()\n  \n(\nNative\n \nMethod\n)\n\n          \nobjects\n:\n \n<\nno\n \nobjects\n \nin\n \nthis\n \nframe\n>\n\n         \nbp\n:\n \n0x00000000000df788\n  \nmethod\n:\n \nvoid\n \ncom\n/\nibm\n/\nmisc\n/\nSignalDispatcher\n.\nrun\n()\n  \nsource\n:\n \nSignalDispatcher\n.\njava\n:\n54\n\n          \nobjects\n:\n \n0x30015828\n \n0x30015828\n\n    \n===\nLines\n \nRemoved\n===\n\n\n\n    \n>\n \ninfo\n \nheap\n \n*\n\n\n             \nHeap\n \n#\n1\n:\n  \nGenerational\n@\nfff78303d30\n\n              \nSection\n \n#\n1\n:\n  \nHeap\n \nextent\n \nat\n \n0x100d0000\n \n(\n0x300000\n \nbytes\n)\n\n               \nSize\n:\n        \n3145728\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n              \nSection\n \n#\n2\n:\n  \nHeap\n \nextent\n \nat\n \n0x2ffd0000\n \n(\n0x80000\n \nbytes\n)\n\n               \nSize\n:\n        \n524288\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n              \nSection\n \n#\n3\n:\n  \nHeap\n \nextent\n \nat\n \n0x30050000\n \n(\n0x80000\n \nbytes\n)\n\n               \nSize\n:\n        \n524288\n \nbytes\n\n               \nShared\n:\n      \nfalse\n\n               \nExecutable\n:\n  \nfalse\n\n               \nRead\n \nOnly\n:\n   \nfalse\n\n\n    \n>\n \ninfo\n \nclass\n \njava\n/\nlang\n/\nString\n\n    \nname\n \n=\n \njava\n/\nlang\n/\nString\n\n\n            \nID\n \n=\n \n0x37c00\n    \nsuperID\n \n=\n \n0x30300\n\n            \nclassLoader\n \n=\n \n0x2ffe9b58\n    \nmodifiers\n:\n \npublic\n \nfinal\n\n\n            \nnumber\n \nof\n \ninstances\n:\n     \n2146\n\n            \ntotal\n \nsize\n \nof\n \ninstances\n:\n \n51504\n \nbytes\n\n\n    \nInheritance\n \nchain\n....\n\n            \njava\n/\nlang\n/\nObject\n\n               \njava\n/\nlang\n/\nString\n\n\n    \nFields\n......\n\n              \nstatic\n \nfields\n \nfor\n \n\"java/lang/String\"\n\n                \nprivate\n \nstatic\n \nfinal\n \nlong\n \nserialVersionUID\n \n=\n \n-\n6849794470754667710\n \n(\n0xa0f0a4387a3bb342\n)\n\n                \npublic\n \nstatic\n \nfinal\n \njava\n.\nutil\n.\nComparator\n \nCASE_INSENSITIVE_ORDER\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0278\n\n                \nprivate\n \nstatic\n \nfinal\n \nchar\n[]\n \nascii\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd02c8\n\n                \nprivate\n \nstatic\n \nString\n[]\n \nstringArray\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0298\n\n                \nprivate\n \nstatic\n \nfinal\n \nint\n \nstringArraySize\n \n=\n \n10\n \n(\n0xa\n)\n\n                \nstatic\n \nboolean\n \nenableCopy\n \n=\n \nfalse\n\n                \nprivate\n \nstatic\n \nint\n \nseed\n \n=\n \n-\n126504465\n \n(\n0xfffffffff875b1ef\n)\n\n                \nprivate\n \nstatic\n \nchar\n[]\n \nstartCombiningAbove\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0c40\n\n                \nprivate\n \nstatic\n \nchar\n[]\n \nendCombiningAbove\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0cc0\n\n                \nprivate\n \nstatic\n \nfinal\n \nchar\n[]\n \nupperValues\n \n=\n \n<\nobject\n>\n \n@\n \n0x100d0d40\n\n                \nprivate\n \nstatic\n \nfinal\n \njava\n.\nio\n.\nObjectStreamField\n[]\n \nserialPersistentFields\n \n=\n \n<\nobject\n>\n \n@\n \n0x2ffd0920\n\n\n              \nnon\n-\nstatic\n \nfields\n \nfor\n \n\"java/lang/String\"\n\n                \nprivate\n \nfinal\n \nchar\n[]\n \nvalue\n\n                \nprivate\n \nfinal\n \nint\n \noffset\n\n                \nprivate\n \nfinal\n \nint\n \ncount\n\n                \nprivate\n \nint\n \nhashCode\n\n                \nprivate\n \nint\n \nhashCode32\n\n\n    \nMethods\n......\n\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \n:\n  \nprivate\n \nstatic\n \nnative\n \nint\n \ngetSeed\n()\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8ce48\n \n--\n \nfff76d8ce5e\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n()\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8ce88\n \n--\n \nfff76d8cecd\n:\n  \nprivate\n \nvoid\n \n<\ninit\n>\n(\nString\n,\n \nchar\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf10\n \n--\n \nfff76d8cf19\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[])\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf40\n \n--\n \nfff76d8cf4a\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cf7c\n \n--\n \nfff76d8cfb5\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8cff8\n \n--\n \nfff76d8d065\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n,\n \nint\n)\n\n    \nBytecode\n \nrange\n(\ns\n)\n:\n \nfff76d8d0c4\n \n--\n \nfff76d8d10c\n:\n  \npublic\n \nvoid\n \n<\ninit\n>\n(\nbyte\n[],\n \nint\n,\n \nint\n,\n \nString\n)\n\n    \n===\nLines\n \nRemoved\n===\n\n\n    \n>\n \nwhatis\n  \n0x2ffd0298\n\n            \nheap\n \n#\n1\n \n-\n \nname\n:\n \nGenerational\n@\nfff78303d30\n\n                    \n0x2ffd0298\n \nis\n \nwithin\n \nheap\n \nsegment\n:\n \n2ff\nd0000\n \n--\n \n30050000\n\n                    \n0x2ffd0298\n \nis\n \nthe\n \nstart\n \nof\n \nan\n \nobject\n \nof\n \ntype\n \n[\nLjava\n/\nlang\n/\nString\n;",
             "title": "Dump viewer"
         },
         {
@@ -4797,7 +4797,7 @@
         },
         {
             "location": "/tool_jdmpview/#starting-in-batch-mode",
-            "text": "For long running or routine jobs,  jdmpview  can be used in batch mode.  You can run a single command without specifying a command file by appending the command to the end of the  jdmpview  command line. For example:  jdmpview -core mycore.dmp info class  When specifying jdmpview commands that accept a wildcard parameter, you must replace the wildcard symbol with  ALL  to prevent the shell interpreting the wildcard symbol. For example, in interactive mode, the command  info thread *  must be specified in the following way:  jdmpview -core mycore.dmp info thread ALL  Batch mode is controlled with the following command line options:     Option  Explanation      -cmdfile   A file that contains a series of jdmpview commands, which are read and run sequentially.    -charset   The character set for the commands specified in -cmdfile (name must be a supported charset as defined in java.nio.charset.Charset. For example, US-ASCII)    -outfile   The file to record any output generated by commands.    -overwrite  If the file specified in -outfile exists, this option overwrites the file.    -append  If the file specified in -outfile exists, new output messages are appended to the end of that file. The -append and -overwrite options cannot be used at the same time.     The command file can have empty lines that contain spaces, or comment lines that start with // or #. These lines are ignored by jdmpview. Example command file:  // commands.txt\ninfo system\ninfo proc  To run jdmpview in batch mode, using this command file, specify:  jdmpview -outfile out.txt [-overwrite|-append] -cmdfile commands.txt -core <path to core file>  When the output file exists, you need to specify either the  -overwrite  option or the  -append  option. If you do not, an error message is generated.",
+            "text": "For long running or routine jobs,  jdmpview  can be used in batch mode.  You can run a single command without specifying a command file by appending the command to the end of the  jdmpview  command line. For example:  jdmpview -core mycore.dmp info class  When specifying jdmpview commands that accept a wildcard parameter, you must replace the wildcard symbol with  ALL  to prevent the shell interpreting the wildcard symbol. For example, in interactive mode, the command  info thread *  must be specified in the following way:  jdmpview -core mycore.dmp info thread ALL  Batch mode is controlled with the following command line options:     Option  Explanation      -cmdfile <path to command file>  A file that contains a series of jdmpview commands, which are read and run sequentially.    -charset <character set name>  The character set for the commands specified in -cmdfile (name must be a supported charset as defined in java.nio.charset.Charset. For example, US-ASCII)    -outfile <path to output file>  The file to record any output generated by commands.    -overwrite  If the file specified in -outfile exists, this option overwrites the file.    -append  If the file specified in -outfile exists, new output messages are appended to the end of that file. The -append and -overwrite options cannot be used at the same time.     The command file can have empty lines that contain spaces, or comment lines that start with // or #. These lines are ignored by jdmpview. Example command file:  // commands.txt\ninfo system\ninfo proc  To run jdmpview in batch mode, using this command file, specify:  jdmpview -outfile out.txt [-overwrite|-append] -cmdfile commands.txt -core <path to core file>  When the output file exists, you need to specify either the  -overwrite  option or the  -append  option. If you do not, an error message is generated.",
             "title": "Starting in batch mode"
         },
         {
@@ -4812,7 +4812,7 @@
         },
         {
             "location": "/tool_jdmpview/#using-charsto",
-            "text": "Use the  CharsTo  command after the vertical bar character to include the characters in a resulting line until a specific pattern is found.  charsTo [options] pattern  Where  <options> :   -include  : Include the matched pattern in the resulting line. By default, the matched pattern is excluded from the resulting line.  -keep  : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.  -i  or  -ignoreCase  : Ignore case.   For example, the following command displays lines that contain the pattern \"@\", and trims each line to exclude all characters from \"@\" onwards:  > info mod | charsTo @\nbin/java\n/usr/lib64/gconv/UTF-16.so\n/test/sdk/lib/ppc64le/libnet.so\n/test/sdk/lib/ppc64le/libnio.so\n/test/sdk/lib/ppc64le/libzip.so\n/test/sdk/lib/ppc64le/libjsig.so\nlibjsig.so  You can also use  charsFrom  and  charsTo  together, separated by a vertical bar character. For example, the following command displays lines that contain the pattern \"lib\", and trims each line to exclude all characters that come before this pattern, as well as all characters from the pattern  @  :  > info mod | charsFrom lib | charsTo @\nlib/ppc64le/libzip.so\nlib/ppc64le/libjsig.so\nlib/ppc64le/libverify.so\nlib/ppc64le/libjava.so\nlib/ppc64le/compressedrefs/libj9jit29.so    Note:  The line will not be displayed if the  charsFrom  and  charsTo  are used together, but only one of the patterns are matched in a line. Furthermore, the line will not be displayed if both patterns are matched in a line, but the  charsTo  pattern appears before, and not after, the  charsFrom  pattern.",
+            "text": "Use the  CharsTo  command after the vertical bar character to include the characters in a resulting line until a specific pattern is found.  charsTo <options> pattern  Where  <options> :   -include  : Include the matched pattern in the resulting line. By default, the matched pattern is excluded from the resulting line.  -keep  : Keep lines that do not contain a match to the pattern. By default, lines that do not contain a match are excluded from the results.  -i  or  -ignoreCase  : Ignore case.   For example, the following command displays lines that contain the pattern \"@\", and trims each line to exclude all characters from \"@\" onwards:  > info mod | charsTo @\nbin/java\n/usr/lib64/gconv/UTF-16.so\n/test/sdk/lib/ppc64le/libnet.so\n/test/sdk/lib/ppc64le/libnio.so\n/test/sdk/lib/ppc64le/libzip.so\n/test/sdk/lib/ppc64le/libjsig.so\nlibjsig.so  You can also use  charsFrom  and  charsTo  together, separated by a vertical bar character. For example, the following command displays lines that contain the pattern \"lib\", and trims each line to exclude all characters that come before this pattern, as well as all characters from the pattern  @  :  > info mod | charsFrom lib | charsTo @\nlib/ppc64le/libzip.so\nlib/ppc64le/libjsig.so\nlib/ppc64le/libverify.so\nlib/ppc64le/libjava.so\nlib/ppc64le/compressedrefs/libj9jit29.so    Note:  The line will not be displayed if the  charsFrom  and  charsTo  are used together, but only one of the patterns are matched in a line. Furthermore, the line will not be displayed if both patterns are matched in a line, but the  charsTo  pattern appears before, and not after, the  charsFrom  pattern.",
             "title": "Using CharsTo"
         },
         {
@@ -4827,10 +4827,15 @@
         },
         {
             "location": "/tool_jdmpview/#session-parameters",
-            "text": "When  jdmpview  is started, the following parameters can be used during the session to interrogate the system dump data:",
+            "text": "When  jdmpview  is started, many parameters can be used during the session to interrogate the system dump data, which are divided into  general  and  expert  parameters. The  general  parameters are documented in this section. To see a list of  expert  parameters, use the  !j9help  option.",
             "title": "Session parameters"
         },
         {
+            "location": "/tool_jdmpview/#j9help",
+            "text": "!j9help   Lists all  expert  parameters that can be used in a session, with a brief description.",
+            "title": "!j9help"
+        },
+        {
             "location": "/tool_jdmpview/#cd",
             "text": "cd <directory_name>   Changes the working directory to  <directory_name> . The working directory is used for log files. Logging is controlled by the  set logging  command. Use the  pwd  command to query the current working directory.",
             "title": "cd"
@@ -4852,7 +4857,7 @@
         },
         {
             "location": "/tool_jdmpview/#findnext",
-            "text": "findptr <pattern>,<start_address>,<end_address>,<memory_boundary>, <bytes_to_print>,<matches_to_display>    Finds the next instance of the last string passed to  find  or  findptr . It repeats the previous  find  or  findptr  command, depending on which one was issued last, starting from the last match.  Searches memory for the given pointer.  findptr  searches for  <pattern>  as a pointer in the memory segment from  <start_address>  to  <end_address>  (both inclusive), and shows the number of matching addresses you specify with  <matches_to_display> . You can also display the next  <bytes_to_print>  bytes for the last match.  By default, the  findptr  command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify  <memory_boundary>  to search every  <memory_boundary>  bytes. For example, if you specify a  <memory_boundary>  of \"4\", the command searches for the pattern every 4 bytes.",
+            "text": "findptr <pattern>,<start_address>,<end_address>,<memory_boundary>,<bytes_to_print>,<matches_to_display>    Finds the next instance of the last string passed to  find  or  findptr . It repeats the previous  find  or  findptr  command, depending on which one was issued last, starting from the last match.  Searches memory for the given pointer.  findptr  searches for  <pattern>  as a pointer in the memory segment from  <start_address>  to  <end_address>  (both inclusive), and shows the number of matching addresses you specify with  <matches_to_display> . You can also display the next  <bytes_to_print>  bytes for the last match.  By default, the  findptr  command searches for the pattern at every byte in the range. If you know the pattern is aligned to a particular byte boundary, you can specify  <memory_boundary>  to search every  <memory_boundary>  bytes. For example, if you specify a  <memory_boundary>  of \"4\", the command searches for the pattern every 4 bytes.",
             "title": "findnext"
         },
         {
@@ -4961,9 +4966,9 @@
             "title": "show logging"
         },
         {
-            "location": "/tool_jdmpview/#whatis",
+            "location": "/tool_jdmpview/#whatis-hex_address",
             "text": "Displays information about  whatis  stored at the given memory address,  <hex_address> . This command examines the memory location at  <hex_address>  and tries to find out more information about this address. For example: >   whatis   0x8e76a8  heap   # 1   -   name :   Default @19f ce8  0x8e76a8   is   within   heap   segment :   8 b0000   --   cb0000  0x8e76a8   is   start   of   an   object   of   type   java / lang / Thread",
-            "title": "whatis "
+            "title": "whatis &lt;hex_address&gt;"
         },
         {
             "location": "/tool_jdmpview/#x-examine",
@@ -4971,9 +4976,9 @@
             "title": "x/ (examine)"
         },
         {
-            "location": "/tool_jdmpview/#xj-0xaddr",
-            "text": "Displays information about a particular object, or all objects of a class. If   is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.    Note:  This command ignores the number of items and unit size passed to it by the  x/  command.",
-            "title": "x/J [|&lt;0xaddr&gt;]"
+            "location": "/tool_jdmpview/#xj-class_name0xaddr",
+            "text": "Displays information about a particular object, or all objects of a class. If  <class_name>  is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.    Note:  This command ignores the number of items and unit size passed to it by the  x/  command.",
+            "title": "x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]"
         },
         {
             "location": "/tool_jdmpview/#xd-0xaddr",
diff --git a/sitemap.xml b/sitemap.xml
index 4afa634..724e4c4 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -12,7 +12,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/introduction/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -21,19 +21,19 @@
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/version0.10/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/version0.9/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/version0.8/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -42,7 +42,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/gc/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -50,7 +50,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/jit/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -58,7 +58,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/aot/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -66,7 +66,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/shrc/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -75,25 +75,25 @@
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/diag_overview/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/dump_javadump/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/dump_heapdump/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/dump_systemdump/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -103,19 +103,19 @@
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/cmdline_specifying/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/cmdline_general/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/cmdline_migration/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -143,19 +143,19 @@
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/tool_jdmpview/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/tool_traceformat/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/tool_builder/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -165,31 +165,31 @@
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/openj9_support/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/openj9_defaults/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/openj9_directories/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/messages_intro/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>https://www.eclipse.org/openj9/docs/env_var/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -198,7 +198,7 @@
     
     <url>
      <loc>https://www.eclipse.org/openj9/docs/legal/</loc>
-     <lastmod>2018-10-05</lastmod>
+     <lastmod>2018-10-09</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
diff --git a/tool_jdmpview/index.html b/tool_jdmpview/index.html
index c9be183..706f444 100644
--- a/tool_jdmpview/index.html
+++ b/tool_jdmpview/index.html
@@ -2675,6 +2675,13 @@
       <ul class="md-nav__list">
         
           <li class="md-nav__item">
+  <a href="#j9help" title="!j9help" class="md-nav__link">
+    !j9help
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
   <a href="#cd" title="cd" class="md-nav__link">
     cd
   </a>
@@ -2857,8 +2864,8 @@
 </li>
         
           <li class="md-nav__item">
-  <a href="#whatis" title="whatis " class="md-nav__link">
-    whatis 
+  <a href="#whatis-hex_address" title="whatis &lt;hex_address&gt;" class="md-nav__link">
+    whatis &lt;hex_address&gt;
   </a>
   
 </li>
@@ -2871,8 +2878,8 @@
 </li>
         
           <li class="md-nav__item">
-  <a href="#xj-0xaddr" title="x/J [|&lt;0xaddr&gt;]" class="md-nav__link">
-    x/J [|&lt;0xaddr&gt;]
+  <a href="#xj-class_name0xaddr" title="x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]" class="md-nav__link">
+    x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]
   </a>
   
 </li>
@@ -3143,6 +3150,13 @@
       <ul class="md-nav__list">
         
           <li class="md-nav__item">
+  <a href="#j9help" title="!j9help" class="md-nav__link">
+    !j9help
+  </a>
+  
+</li>
+        
+          <li class="md-nav__item">
   <a href="#cd" title="cd" class="md-nav__link">
     cd
   </a>
@@ -3325,8 +3339,8 @@
 </li>
         
           <li class="md-nav__item">
-  <a href="#whatis" title="whatis " class="md-nav__link">
-    whatis 
+  <a href="#whatis-hex_address" title="whatis &lt;hex_address&gt;" class="md-nav__link">
+    whatis &lt;hex_address&gt;
   </a>
   
 </li>
@@ -3339,8 +3353,8 @@
 </li>
         
           <li class="md-nav__item">
-  <a href="#xj-0xaddr" title="x/J [|&lt;0xaddr&gt;]" class="md-nav__link">
-    x/J [|&lt;0xaddr&gt;]
+  <a href="#xj-class_name0xaddr" title="x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]" class="md-nav__link">
+    x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]
   </a>
   
 </li>
@@ -3498,15 +3512,15 @@
 </thead>
 <tbody>
 <tr>
-<td>-cmdfile <path to command file></td>
+<td>-cmdfile &lt;path to command file&gt;</td>
 <td>A file that contains a series of jdmpview commands, which are read and run sequentially.</td>
 </tr>
 <tr>
-<td>-charset <character set name></td>
+<td>-charset &lt;character set name&gt;</td>
 <td>The character set for the commands specified in -cmdfile (name must be a supported charset as defined in java.nio.charset.Charset. For example, US-ASCII)</td>
 </tr>
 <tr>
-<td>-outfile <path to output file></td>
+<td>-outfile &lt;path to output file&gt;</td>
 <td>The file to record any output generated by commands.</td>
 </tr>
 <tr>
@@ -3583,7 +3597,7 @@
 
 <h4 id="using-charsto">Using <code>CharsTo</code></h4>
 <p>Use the <code>CharsTo</code> command after the vertical bar character to include the characters in a resulting line until a specific pattern is found.</p>
-<div class="codehilite"><pre><span></span>charsTo [options] pattern
+<div class="codehilite"><pre><span></span>charsTo &lt;options&gt; pattern
 </pre></div>
 
 
@@ -3694,7 +3708,15 @@
 
 
 <h2 id="session-parameters">Session parameters</h2>
-<p>When <code>jdmpview</code> is started, the following parameters can be used during the session to interrogate the system dump data:</p>
+<p>When <code>jdmpview</code> is started, many parameters can be used during the session to interrogate the system dump data, which are divided into <em>general</em> and <em>expert</em> parameters. The <em>general</em> parameters are documented in this section. To see a list of <em>expert</em> parameters, use the <code>!j9help</code> option.</p>
+<h3 id="j9help">!j9help</h3>
+<div class="codehilite"><pre><span></span>    !j9help
+</pre></div>
+
+
+<dl>
+<dd>Lists all <em>expert</em> parameters that can be used in a session, with a brief description.</dd>
+</dl>
 <h3 id="cd">cd</h3>
 <div class="codehilite"><pre><span></span>    cd &lt;directory_name&gt;
 </pre></div>
@@ -3738,7 +3760,7 @@
 </dd>
 </dl>
 <h3 id="findnext">findnext</h3>
-<div class="codehilite"><pre><span></span>    findptr &lt;pattern&gt;,&lt;start_address&gt;,&lt;end_address&gt;,&lt;memory_boundary&gt;, &lt;bytes_to_print&gt;,&lt;matches_to_display&gt;
+<div class="codehilite"><pre><span></span>    findptr &lt;pattern&gt;,&lt;start_address&gt;,&lt;end_address&gt;,&lt;memory_boundary&gt;,&lt;bytes_to_print&gt;,&lt;matches_to_display&gt;
 </pre></div>
 
 
@@ -3974,7 +3996,7 @@
 <p>The file that is currently being logged to might be different from set_logging_file, if that value was changed after logging was started.</p>
 </dd>
 </dl>
-<h3 id="whatis">whatis <hex_address></h3>
+<h3 id="whatis-hex_address">whatis <code>&lt;hex_address&gt;</code></h3>
 <dl>
 <dd>Displays information about <code>whatis</code> stored at the given memory address, <code>&lt;hex_address&gt;</code>. This command examines the memory location at <code>&lt;hex_address&gt;</code> and tries to find out more information about this address. For example:<div class="codehilite"><pre><span></span><span class="o">&gt;</span> <span class="n">whatis</span> <span class="mh">0x8e76a8</span>
 
@@ -4024,10 +4046,10 @@
 <p>This command is similar to the use of the <code>x/</code> command in gdb, including the use of defaults.</p>
 </dd>
 </dl>
-<h3 id="xj-0xaddr">x/J [<class_name>|&lt;0xaddr&gt;]</h3>
+<h3 id="xj-class_name0xaddr">x/J [&lt;class_name&gt;|&lt;0xaddr&gt;]</h3>
 <dl>
 <dd>
-<p>Displays information about a particular object, or all objects of a class. If <class_name> is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.</p>
+<p>Displays information about a particular object, or all objects of a class. If <code>&lt;class_name&gt;</code> is supplied, all static fields with their values are shown, followed by all objects of that class with their fields and values. If an object address (in hex) is supplied, static fields for that object's class are not shown; the other fields and values of that object are printed along with its address.</p>
 <p><i class="fa fa-pencil-square-o" aria-hidden="true"></i> <strong>Note:</strong> This command ignores the number of items and unit size passed to it by the <code>x/</code> command.</p>
 </dd>
 </dl>
