/*
 * Copyright 2001-2006 Sun Microsystems, Inc.  All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Sun designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Sun in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 * CA 95054 USA or visit www.sun.com if you need additional information or
 * have any questions.
 */

package com.sun.tools.example.debug.tty;

/**
 * <p> This class represents the <code>ResourceBundle</code>
 * for the following package(s):
 *
 * <ol>
 * <li> com.sun.tools.example.debug.tty
 * </ol>
 *
 */
public class TTYResources extends java.util.ListResourceBundle {


    /**
     * Returns the contents of this <code>ResourceBundle</code>.
     *
     * <p>
     *
     * @return the contents of this <code>ResourceBundle</code>.
     */
    public Object[][] getContents() {
        return new Object[][] {
        // NOTE: The value strings in this file containing "{0}" are
        //       processed by the java.text.MessageFormat class.  Any
        //       single quotes appearing in these strings need to be
        //       doubled up.
        //
        // LOCALIZE THIS
        {"** classes list **", "** classes list **\n{0}"},
        {"** fields list **", "** fields list **\n{0}"},
        {"** methods list **", "** methods list **\n{0}"},
        {"*** Reading commands from", "*** Reading commands from {0}"},
        {"All threads resumed.", "All threads resumed."},
        {"All threads suspended.", "All threads suspended."},
        {"Argument is not defined for connector:", "Argument {0} is not defined for connector: {1}"},
        {"Arguments match no method", "Arguments match no method"},
        {"Array:", "Array: {0}"},
        {"Array element is not a method", "Array element is not a method"},
        {"Array index must be a integer type", "Array index must be a integer type"},
        {"base directory:", "base directory: {0}"},
        {"bootclasspath:", "bootclasspath: {0}"},
        {"Breakpoint hit:", "Breakpoint hit: "},
        {"breakpoint", "breakpoint {0}"},
        {"Breakpoints set:", "Breakpoints set:"},
        {"Breakpoints can be located only in classes.", "Breakpoints can be located only in classes.  {0} is an interface or array."},
        {"Can only trace", "Can only trace 'methods' or 'method exit' or 'method exits'"},
        {"cannot redefine existing connection", "{0} cannot redefine existing connection"},
        {"Cannot assign to a method invocation", "Cannot assign to a method invocation"},
        {"Cannot specify command line with connector:", "Cannot specify command line with connector: {0}"},
        {"Cannot specify target vm arguments with connector:", "Cannot specify target VM arguments with connector: {0}"},
        {"Class containing field must be specified.", "Class containing field must be specified."},
        {"Class:", "Class: {0}"},
        {"Classic VM no longer supported.", "Classic VM no longer supported."},
        {"classpath:", "classpath: {0}"},
        {"colon mark", ":"},
        {"colon space", ": "},
        {"Command is not supported on the target VM", "Command ''{0}'' is not supported on the target VM"},
        {"Command is not supported on a read-only VM connection", "Command ''{0}'' is not supported on a read-only VM connection"},
        {"Command not valid until the VM is started with the run command", "Command ''{0}'' is not valid until the VM is started with the ''run'' command"},
        {"Condition must be boolean", "Condition must be boolean"},
        {"Connector and Transport name", "  Connector: {0}  Transport: {1}"},
        {"Connector argument nodefault", "    Argument: {0} (no default)"},
        {"Connector argument default", "    Argument: {0} Default value: {1}"},
        {"Connector description", "    description: {0}"},
        {"Connector required argument nodefault", "    Required Argument: {0} (no default)"},
        {"Connector required argument default", "    Required Argument: {0} Default value: {1}"},
        {"Connectors available", "Available connectors are:"},
        {"Constant is not a method", "Constant is not a method"},
        {"Could not open:", "Could not open: {0}"},
        {"Current method is native", "Current method is native"},
        {"Current thread died. Execution continuing...", "Current thread {0} died. Execution continuing..."},
        {"Current thread isnt suspended.", "Current thread isn't suspended."},
        {"Current thread not set.", "Current thread not set."},
        {"dbgtrace flag value must be an integer:", "dbgtrace flag value must be an integer: {0}"},
        {"Deferring.", "Deferring {0}.\nIt will be set after the class is loaded."},
        {"End of stack.", "End of stack."},
        {"Error popping frame", "Error popping frame - {0}"},
        {"Error reading file", "Error reading ''{0}'' - {1}"},
        {"Error redefining class to file", "Error redefining {0} to {1} - {2}"},
        {"exceptionSpec all", "all {0}"},
        {"exceptionSpec caught", "caught {0}"},
        {"exceptionSpec uncaught", "uncaught {0}"},
        {"Exception in expression:", "Exception in expression: {0}"},
        {"Exception occurred caught", "Exception occurred: {0} (to be caught at: {1})"},
        {"Exception occurred uncaught", "Exception occurred: {0} (uncaught)"},
        {"Exceptions caught:", "Break when these exceptions occur:"},
        {"expr is null", "{0} = null"},
        {"expr is value", "{0} = {1}"},
        {"expr is value <collected>", "  {0} = {1} <collected>"},
        {"Expression cannot be void", "Expression cannot be void"},
        {"Expression must evaluate to an object", "Expression must evaluate to an object"},
        {"extends:", "extends: {0}"},
        {"Failed reading output", "Failed reading output of child java interpreter."},
        {"Fatal error", "Fatal error:"},
        {"Field access encountered before after", "Field ({0}) is {1}, will be {2}: "},
        {"Field access encountered", "Field ({0}) access encountered: "},
        {"Field to unwatch not specified", "Field to unwatch not specified."},
        {"Field to watch not specified", "Field to watch not specified."},
        {"GC Disabled for", "GC Disabled for {0}:"},
        {"GC Enabled for", "GC Enabled for {0}:"},
        {"grouping begin character", "{"},
        {"grouping end character", "}"},
        {"Illegal Argument Exception", "Illegal Argument Exception"},
        {"Illegal connector argument", "Illegal connector argument: {0}"},
        {"implementor:", "implementor: {0}"},
        {"implements:", "implements: {0}"},
        {"Initializing progname", "Initializing {0} ..."},
        {"Input stream closed.", "Input stream closed."},
        {"Interface:", "Interface: {0}"},
        {"Internal debugger error.", "Internal debugger error."},
        {"Internal error: null ThreadInfo created", "Internal error: null ThreadInfo created"},
        {"Internal error; unable to set", "Internal error; unable to set {0}"},
        {"Internal exception during operation:", "Internal exception during operation:\n    {0}"},
        {"Internal exception:", "Internal exception:"},
        {"Invalid argument type name", "Invalid argument type name"},
        {"Invalid assignment syntax", "Invalid assignment syntax"},
        {"Invalid command syntax", "Invalid command syntax"},
        {"Invalid connect type", "Invalid connect type"},
        {"Invalid consecutive invocations", "Invalid consecutive invocations"},
        {"Invalid exception object", "Invalid exception object"},
        {"Invalid method specification:", "Invalid method specification: {0}"},
        {"Invalid option on class command", "Invalid option on class command"},
        {"invalid option", "invalid option: {0}"},
        {"Invalid thread status.", "Invalid thread status."},
        {"Invalid transport name:", "Invalid transport name: {0}"},
        {"I/O exception occurred:", "I/O Exception occurred: {0}"},
        {"is an ambiguous method name in", "\"{0}\" is an ambiguous method name in \"{1}\""},
        {"is an invalid line number for",  "{0,number,integer} is an invalid line number for {1}"},
        {"is not a valid class name", "\"{0}\" is not a valid class name."},
        {"is not a valid field name", "\"{0}\" is not a valid field name."},
        {"is not a valid id or class name", "\"{0}\" is not a valid id or class name."},
        {"is not a valid line number or method name for", "\"{0}\" is not a valid line number or method name for class \"{1}\""},
        {"is not a valid method name", "\"{0}\" is not a valid method name."},
        {"is not a valid thread id", "\"{0}\" is not a valid thread id."},
        {"is not a valid threadgroup name", "\"{0}\" is not a valid threadgroup name."},
        {"jdb prompt with no current thread", "> "},
        {"jdb prompt thread name and current stack frame", "{0}[{1,number,integer}] "},
        {"killed", "{0} killed"},
        {"killing thread:", "killing thread: {0}"},
        {"Line number information not available for", "Source line numbers not available for this location."},
        {"line number", ":{0,number,integer}"},
        {"list field typename and name", "{0} {1}\n"},
        {"list field typename and name inherited", "{0} {1} (inherited from {2})\n"},
        {"list field typename and name hidden", "{0} {1} (hidden)\n"},
        {"Listening at address:", "Listening at address: {0}"},
        {"Local variable information not available.", "Local variable information not available.  Compile with -g to generate variable information"},
        {"Local variables:", "Local variables:"},
        {"<location unavailable>", "<location unavailable>"},
        {"location", "\"thread={0}\", {1}"},
        {"locationString", "{0}.{1}(), line={2,number,integer} bci={3,number,integer}"},
        {"Main class and arguments must be specified", "Main class and arguments must be specified"},
        {"Method arguments:", "Method arguments:"},
        {"Method entered:", "Method entered: "},
        {"Method exited:",  "Method exited"},
        {"Method exitedValue:", "Method exited: return value = {0}, "},
        {"Method is overloaded; specify arguments", "Method {0} is overloaded; specify arguments"},
        {"minus version", "This is {0} version {1,number,integer}.{2,number,integer} (Java SE version {3})"},
        {"Monitor information for thread", "Monitor information for thread {0}:"},
        {"Monitor information for expr", "Monitor information for {0} ({1}):"},
        {"More than one class named", "More than one class named: ''{0}''"},
        {"native method", "native method"},
        {"nested:", "nested: {0}"},
        {"No attach address specified.", "No attach address specified."},
        {"No breakpoints set.", "No breakpoints set."},
        {"No class named", "No class named ''{0}''"},
        {"No class specified.", "No class specified."},
        {"No classpath specified.", "No classpath specified."},
        {"No code at line", "No code at line {0,number,integer} in {1}"},
        {"No connect specification.", "No connect specification."},
        {"No connector named:", "No connector named: {0}"},
        {"No current thread", "No current thread"},
        {"No default thread specified:", "No default thread specified: use the \"thread\" command first."},
        {"No exception object specified.", "No exception object specified."},
        {"No exceptions caught.", "No exceptions caught."},
        {"No expression specified.", "No expression specified."},
        {"No field in", "No field {0} in {1}"},
        {"No frames on the current call stack", "No frames on the current call stack"},
        {"No linenumber information for", "No linenumber information for {0}.  Try compiling with debugging on."},
        {"No local variables", "No local variables"},
        {"No method in", "No method {0} in {1}"},
        {"No method specified.", "No method specified."},
        {"No monitor numbered:", "No monitor numbered: {0}"},
        {"No monitors owned", "  No monitors owned"},
        {"No object specified.", "No object specified."},
        {"No objects specified.", "No objects specified."},
        {"No save index specified.", "No save index specified."},
        {"No saved values", "No saved values"},
        {"No source information available for:", "No source information available for: {0}"},
        {"No sourcedebugextension specified", "No SourceDebugExtension specified"},
        {"No sourcepath specified.", "No sourcepath specified."},
        {"No thread specified.", "No thread specified."},
        {"No VM connected", "No VM connected"},
        {"No waiters", "  No waiters"},
        {"not a class", "{0} is not a class"},
        {"Not a monitor number:", "Not a monitor number: ''{0}''"},
        {"not found (try the full name)", "{0} not found (try the full name)"},
        {"Not found:", "Not found: {0}"},
        {"not found", "{0} not found"},
        {"Not owned", "  Not owned"},
        {"Not waiting for a monitor", "  Not waiting for a monitor"},
        {"Nothing suspended.", "Nothing suspended."},
        {"object description and hex id", "({0}){1}"},
        {"Operation is not supported on the target VM", "Operation is not supported on the target VM"},
        {"operation not yet supported", "operation not yet supported"},
        {"Owned by:", "  Owned by: {0}, entry count: {1,number,integer}"},
        {"Owned monitor:", "  Owned monitor: {0}"},
        {"Parse exception:", "Parse Exception: {0}"},
        {"printbreakpointcommandusage", "Usage: {0} <class>:<line_number> or\n       {1} <class>.<method_name>[(argument_type,...)]"},
        {"Removed:", "Removed: {0}"},
        {"Requested stack frame is no longer active:", "Requested stack frame is no longer active: {0,number,integer}"},
        {"run <args> command is valid only with launched VMs", "'run <args>' command is valid only with launched VMs"},
        {"run", "run {0}"},
        {"saved", "{0} saved"},
        {"Set deferred", "Set deferred {0}"},
        {"Set", "Set {0}"},
        {"Source file not found:", "Source file not found: {0}"},
        {"source line number and line", "{0,number,integer}    {1}"},
        {"source line number current line and line", "{0,number,integer} => {1}"},
        {"sourcedebugextension", "SourceDebugExtension -- {0}"},
        {"Specify class and method", "Specify class and method"},
        {"Specify classes to redefine", "Specify classes to redefine"},
        {"Specify file name for class", "Specify file name for class {0}"},
        {"stack frame dump with pc", "  [{0,number,integer}] {1}.{2} ({3}), pc = {4}"},
        {"stack frame dump", "  [{0,number,integer}] {1}.{2} ({3})"},
        {"Step completed:", "Step completed: "},
        {"Stopping due to deferred breakpoint errors.", "Stopping due to deferred breakpoint errors.\n"},
        {"subclass:", "subclass: {0}"},
        {"subinterface:", "subinterface: {0}"},
        {"tab", "\t{0}"},
        {"Target VM failed to initialize.", "Target VM failed to initialize."},
        {"The application exited", "The application exited"},
        {"The application has been disconnected", "The application has been disconnected"},
        {"The gc command is no longer necessary.", "The 'gc' command is no longer necessary.\n" +
         "All objects are garbage collected as usual. Use 'enablegc' and 'disablegc'\n" +
         "commands to control garbage collection of individual objects."},
        {"The load command is no longer supported.", "The 'load' command is no longer supported."},
        {"The memory command is no longer supported.", "The 'memory' command is no longer supported."},
        {"The VM does not use paths", "The VM does not use paths"},
        {"Thread is not running (no stack).", "Thread is not running (no stack)."},
        {"Thread number not specified.", "Thread number not specified."},
        {"Thread:", "{0}:"},
        {"Thread Group:", "Group {0}:"},
        {"Thread description name unknownStatus BP",  "  {0} {1} unknown (at breakpoint)"},
        {"Thread description name unknownStatus",     "  {0} {1} unknown"},
        {"Thread description name zombieStatus BP",   "  {0} {1} zombie (at breakpoint)"},
        {"Thread description name zombieStatus",      "  {0} {1} zombie"},
        {"Thread description name runningStatus BP",  "  {0} {1} running (at breakpoint)"},
        {"Thread description name runningStatus",     "  {0} {1} running"},
        {"Thread description name sleepingStatus BP", "  {0} {1} sleeping (at breakpoint)"},
        {"Thread description name sleepingStatus",    "  {0} {1} sleeping"},
        {"Thread description name waitingStatus BP",  "  {0} {1} waiting in a monitor (at breakpoint)"},
        {"Thread description name waitingStatus",     "  {0} {1} waiting in a monitor"},
        {"Thread description name condWaitstatus BP", "  {0} {1} cond. waiting (at breakpoint)"},
        {"Thread description name condWaitstatus",    "  {0} {1} cond. waiting"},
        {"Thread has been resumed", "Thread has been resumed"},
        {"Thread not suspended", "Thread not suspended"},
        {"thread group number description name", "{0,number,integer}. {1} {2}"},
        {"Threadgroup name not specified.", "Threadgroup name not specified."},
        {"Threads must be suspended", "Threads must be suspended"},
        {"trace method exit in effect for", "trace method exit in effect for {0}"},
        {"trace method exits in effect", "trace method exits in effect"},
        {"trace methods in effect", "trace methods in effect"},
        {"trace go method exit in effect for", "trace go method exit in effect for {0}"},
        {"trace go method exits in effect", "trace go method exits in effect"},
        {"trace go methods in effect", "trace go methods in effect"},
        {"trace not in effect", "trace not in effect"},
        {"Unable to attach to target VM.", "Unable to attach to target VM."},
        {"Unable to display process output:", "Unable to display process output: {0}"},
        {"Unable to launch target VM.", "Unable to launch target VM."},
        {"Unable to set deferred", "Unable to set deferred {0} : {1}"},
        {"Unable to set main class and arguments", "Unable to set main class and arguments"},
        {"Unable to set", "Unable to set {0} : {1}"},
        {"Unexpected event type", "Unexpected event type: {0}"},
        {"unknown", "unknown"},
        {"Unmonitoring", "Unmonitoring {0} "},
        {"Unrecognized command.  Try help...", "Unrecognized command: ''{0}''.  Try help..."},
        {"Usage: catch exception", "Usage: catch [uncaught|caught|all] <class id>|<class pattern>"},
        {"Usage: ignore exception", "Usage: ignore [uncaught|caught|all] <class id>|<class pattern>"},
        {"Usage: down [n frames]", "Usage: down [n frames]"},
        {"Usage: kill <thread id> <throwable>", "Usage: kill <thread id> <throwable>"},
        {"Usage: read <command-filename>", "Usage: read <command-filename>"},
        {"Usage: unmonitor <monitor#>", "Usage: unmonitor <monitor#>"},
        {"Usage: up [n frames]", "Usage: up [n frames]"},
        {"Use java minus X to see", "Use 'java -X' to see the available non-standard options"},
        {"Use stop at to set a breakpoint at a line number", "Use 'stop at' to set a breakpoint at a line number"},
        {"VM already running. use cont to continue after events.", "VM already running. Use 'cont' to continue after events."},
        {"VM Started:", "VM Started: "},
        {"vmstartexception", "VM start exception: {0}"},
        {"Waiting for monitor:", "   Waiting for monitor: {0}"},
        {"Waiting thread:", " Waiting thread: {0}"},
        {"watch accesses of", "watch accesses of {0}.{1}"},
        {"watch modification of", "watch modification of {0}.{1}"},
        {"zz help text",
             "** command list **\n" +
             "connectors                -- list available connectors and transports in this VM\n" +
             "\n" +
             "run [class [args]]        -- start execution of application's main class\n" +
             "\n" +
             "threads [threadgroup]     -- list threads\n" +
             "thread <thread id>        -- set default thread\n" +
             "suspend [thread id(s)]    -- suspend threads (default: all)\n" +
             "resume [thread id(s)]     -- resume threads (default: all)\n" +
             "where [<thread id> | all] -- dump a thread's stack\n" +
             "wherei [<thread id> | all]-- dump a thread's stack, with pc info\n" +
             "up [n frames]             -- move up a thread's stack\n" +
             "down [n frames]           -- move down a thread's stack\n" +
             "kill <thread id> <expr>   -- kill a thread with the given exception object\n" +
             "interrupt <thread id>     -- interrupt a thread\n" +
             "\n" +
             "print <expr>              -- print value of expression\n" +
             "dump <expr>               -- print all object information\n" +
             "eval <expr>               -- evaluate expression (same as print)\n" +
             "set <lvalue> = <expr>     -- assign new value to field/variable/array element\n" +
             "locals                    -- print all local variables in current stack frame\n" +
             "\n" +
             "classes                   -- list currently known classes\n" +
             "class <class id>          -- show details of named class\n" +
             "methods <class id>        -- list a class's methods\n" +
             "fields <class id>         -- list a class's fields\n" +
             "\n" +
             "threadgroups              -- list threadgroups\n" +
             "threadgroup <name>        -- set current threadgroup\n" +
             "\n" +
             "stop in <class id>.<method>[(argument_type,...)]\n" +
             "                          -- set a breakpoint in a method\n" +
             "stop at <class id>:<line> -- set a breakpoint at a line\n" +
             "clear <class id>.<method>[(argument_type,...)]\n" +
             "                          -- clear a breakpoint in a method\n" +
             "clear <class id>:<line>   -- clear a breakpoint at a line\n" +
             "clear                     -- list breakpoints\n" +
             "catch [uncaught|caught|all] <class id>|<class pattern>\n" +
             "                          -- break when specified exception occurs\n" +
             "ignore [uncaught|caught|all] <class id>|<class pattern>\n" +
             "                          -- cancel 'catch' for the specified exception\n" +
             "watch [access|all] <class id>.<field name>\n" +
             "                          -- watch access/modifications to a field\n" +
             "unwatch [access|all] <class id>.<field name>\n" +
             "                          -- discontinue watching access/modifications to a field\n" +
             "trace [go] methods [thread]\n" +
             "                          -- trace method entries and exits.\n" +
             "                          -- All threads are suspended unless 'go' is specified\n" +
             "trace [go] method exit | exits [thread]\n" +
             "                          -- trace the current method's exit, or all methods' exits\n" +
             "                          -- All threads are suspended unless 'go' is specified\n" +
             "untrace [methods]         -- stop tracing method entrys and/or exits\n" +
             "step                      -- execute current line\n" +
             "step up                   -- execute until the current method returns to its caller\n" +
             "stepi                     -- execute current instruction\n" +
             "next                      -- step one line (step OVER calls)\n" +
             "cont                      -- continue execution from breakpoint\n" +
             "\n" +
             "list [line number|method] -- print source code\n" +
             "use (or sourcepath) [source file path]\n" +
             "                          -- display or change the source path\n" +
             "exclude [<class pattern>, ... | \"none\"]\n" +
             "                          -- do not report step or method events for specified classes\n" +
             "classpath                 -- print classpath info from target VM\n" +
             "\n" +
             "monitor <command>         -- execute command each time the program stops\n" +
             "monitor                   -- list monitors\n" +
             "unmonitor <monitor#>      -- delete a monitor\n" +
             "read <filename>           -- read and execute a command file\n" +
             "\n" +
             "lock <expr>               -- print lock info for an object\n" +
             "threadlocks [thread id]   -- print lock info for a thread\n" +
             "\n" +
             "pop                       -- pop the stack through and including the current frame\n" +
             "reenter                   -- same as pop, but current frame is reentered\n" +
             "redefine <class id> <class file name>\n" +
             "                          -- redefine the code for a class\n" +
             "\n" +
             "disablegc <expr>          -- prevent garbage collection of an object\n" +
             "enablegc <expr>           -- permit garbage collection of an object\n" +
             "\n" +
             "!!                        -- repeat last command\n" +
             "<n> <command>             -- repeat command n times\n" +
             "# <command>               -- discard (no-op)\n" +
             "help (or ?)               -- list commands\n" +
             "version                   -- print version information\n" +
             "exit (or quit)            -- exit debugger\n" +
             "\n" +
             "<class id>: a full class name with package qualifiers\n" +
             "<class pattern>: a class name with a leading or trailing wildcard ('*')\n" +
             "<thread id>: thread number as reported in the 'threads' command\n" +
             "<expr>: a Java(TM) Programming Language expression.\n" +
             "Most common syntax is supported.\n" +
             "\n" +
             "Startup commands can be placed in either \"jdb.ini\" or \".jdbrc\"\n" +
             "in user.home or user.dir"},
        {"zz usage text",
             "Usage: {0} <options> <class> <arguments>\n" +
             "\n" +
             "where options include:\n" +
             "    -help             print out this message and exit\n" +
             "    -sourcepath <directories separated by \"{1}\">\n" +
             "                      directories in which to look for source files\n" +
             "    -attach <address>\n" +
             "                      attach to a running VM at the specified address using standard connector\n" +
             "    -listen <address>\n" +
             "                      wait for a running VM to connect at the specified address using standard connector\n" +
             "    -listenany\n" +
             "                      wait for a running VM to connect at any available address using standard connector\n" +
             "    -launch\n" +
             "                      launch VM immediately instead of waiting for ''run'' command\n" +
             "    -listconnectors   list the connectors available in this VM\n" +
             "    -connect <connector-name>:<name1>=<value1>,...\n" +
             "                      connect to target VM using named connector with listed argument values\n" +
             "    -dbgtrace [flags] print info for debugging {0}\n" +
             "    -tclient          run the application in the HotSpot(TM) Client Compiler\n" +
             "    -tserver          run the application in the HotSpot(TM) Server Compiler\n" +
             "\n" +
             "options forwarded to debuggee process:\n" +
             "    -v -verbose[:class|gc|jni]\n" +
             "                      turn on verbose mode\n" +
             "    -D<name>=<value>  set a system property\n" +
             "    -classpath <directories separated by \"{1}\">\n" +
             "                      list directories in which to look for classes\n" +
             "    -X<option>        non-standard target VM option\n" +
             "\n" +
             "<class> is the name of the class to begin debugging\n" +
             "<arguments> are the arguments passed to the main() method of <class>\n" +
             "\n" +
             "For command help type ''help'' at {0} prompt"},
        // END OF MATERIAL TO LOCALIZE
        };
    }
}
