1 /*
  2  * Copyright (c) 2001, 2022, Oracle and/or its affiliates. All rights reserved.
  3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  4  *
  5  * This code is free software; you can redistribute it and/or modify it
  6  * under the terms of the GNU General Public License version 2 only, as
  7  * published by the Free Software Foundation.  Oracle designates this
  8  * particular file as subject to the "Classpath" exception as provided
  9  * by Oracle in the LICENSE file that accompanied this code.
 10  *
 11  * This code is distributed in the hope that it will be useful, but WITHOUT
 12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14  * version 2 for more details (a copy is included in the LICENSE file that
 15  * accompanied this code).
 16  *
 17  * You should have received a copy of the GNU General Public License version
 18  * 2 along with this work; if not, write to the Free Software Foundation,
 19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  *
 21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 22  * or visit www.oracle.com if you need additional information or have any
 23  * questions.
 24  */
 25 
 26 /*
 27  * This source code is provided to illustrate the usage of a given feature
 28  * or technique and has been deliberately simplified. Additional steps
 29  * required for a production-quality application, such as security checks,
 30  * input validation and proper error handling, might not be present in
 31  * this sample code.
 32  */
 33 
 34 
 35 package com.sun.tools.example.debug.tty;
 36 
 37 /**
 38  * <p> This class represents the <code>ResourceBundle</code>
 39  * for the following package(s):
 40  *
 41  * <ol>
 42  * <li> com.sun.tools.example.debug.tty
 43  * </ol>
 44  *
 45  */
 46 public class TTYResources extends java.util.ListResourceBundle {
 47 
 48 
 49     /**
 50      * Returns the contents of this <code>ResourceBundle</code>.
 51      *
 52      * <p>
 53      *
 54      * @return the contents of this <code>ResourceBundle</code>.
 55      */
 56     @Override
 57     public Object[][] getContents() {
 58         Object[][] temp = new Object[][] {
 59         // NOTE: The value strings in this file containing "{0}" are
 60         //       processed by the java.text.MessageFormat class.  Any
 61         //       single quotes appearing in these strings need to be
 62         //       doubled up.
 63         //
 64         // LOCALIZE THIS
 65         {"** classes list **", "** classes list **\n{0}"},
 66         {"** fields list **", "** fields list **\n{0}"},
 67         {"** methods list **", "** methods list **\n{0}"},
 68         {"*** Reading commands from", "*** Reading commands from {0}"},
 69         {"All threads resumed.", "All threads resumed."},
 70         {"All threads suspended.", "All threads suspended."},
 71         {"Argument is not defined for connector:", "Argument {0} is not defined for connector: {1}"},
 72         {"Arguments match no method", "Arguments match no method"},
 73         {"Array:", "Array: {0}"},
 74         {"Array element is not a method", "Array element is not a method"},
 75         {"Array index must be a integer type", "Array index must be a integer type"},
 76         {"base directory:", "base directory: {0}"},
 77         {"Breakpoint hit:", "Breakpoint hit: "},
 78         {"breakpoint", "breakpoint {0}"},
 79         {"Breakpoints set:", "Breakpoints set:"},
 80         {"Breakpoints can be located only in classes.", "Breakpoints can be located only in classes.  {0} is an interface or array."},
 81         {"Can only trace", "Can only trace 'methods' or 'method exit' or 'method exits'"},
 82         {"cannot redefine existing connection", "{0} cannot redefine existing connection"},
 83         {"Cannot assign to a method invocation", "Cannot assign to a method invocation"},
 84         {"Cannot specify command line with connector:", "Cannot specify command line with connector: {0}"},
 85         {"Cannot specify target vm arguments with connector:", "Cannot specify target VM arguments with connector: {0}"},
 86         {"Class containing field must be specified.", "Class containing field must be specified."},
 87         {"Class:", "Class: {0}"},
 88         {"Classic VM no longer supported.", "Classic VM no longer supported."},
 89         {"classpath:", "classpath: {0}"},
 90         {"colon mark", ":"},
 91         {"colon space", ": "},
 92         {"Command is not supported on the target VM", "Command ''{0}'' is not supported on the target VM"},
 93         {"Command is not supported on a read-only VM connection", "Command ''{0}'' is not supported on a read-only VM connection"},
 94         {"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"},
 95         {"Condition must be boolean", "Condition must be boolean"},
 96         {"Connector and Transport name", "  Connector: {0}  Transport: {1}"},
 97         {"Connector argument nodefault", "    Argument: {0} (no default)"},
 98         {"Connector argument default", "    Argument: {0} Default value: {1}"},
 99         {"Connector description", "    description: {0}"},
100         {"Connector required argument nodefault", "    Required Argument: {0} (no default)"},
101         {"Connector required argument default", "    Required Argument: {0} Default value: {1}"},
102         {"Connectors available", "Available connectors are:"},
103         {"Constant is not a method", "Constant is not a method"},
104         {"Could not open:", "Could not open: {0}"},
105         {"Current method is native", "Current method is native"},
106         {"Current thread died. Execution continuing...", "Current thread {0} died. Execution continuing..."},
107         {"Current thread isnt suspended.", "Current thread isn't suspended."},
108         {"Current thread not set.", "Current thread not set."},
109         {"dbgtrace flag value must be an integer:", "dbgtrace flag value must be an integer: {0}"},
110         {"dbgtrace command value must be an integer:", "dbgtrace command value must be an integer: {0}"},
111         {"Deferring.", "Deferring {0}.\nIt will be set after the class is loaded."},
112         {"End of stack.", "End of stack."},
113         {"EOF", "EOF"},
114         {"Error popping frame", "Error popping frame - {0}"},
115         {"Error reading file", "Error reading ''{0}'' - {1}"},
116         {"Error redefining class to file", "Error redefining {0} to {1} - {2}"},
117         {"exceptionSpec all", "all {0}"},
118         {"exceptionSpec caught", "caught {0}"},
119         {"exceptionSpec uncaught", "uncaught {0}"},
120         {"Exception in expression:", "Exception in expression: {0}"},
121         {"Exception occurred caught", "Exception occurred: {0} (to be caught at: {1})"},
122         {"Exception occurred uncaught", "Exception occurred: {0} (uncaught)"},
123         {"Exceptions caught:", "Break when these exceptions occur:"},
124         {"Expected at, in, or an integer <thread_id>:", "Expected \"at\", \"in\", or an integer <thread_id>: {0}"},
125         {"expr is null", "{0} = null"},
126         {"expr is value", "{0} = {1}"},
127         {"expr is value <collected>", "  {0} = {1} <collected>"},
128         {"Expression cannot be void", "Expression cannot be void"},
129         {"Expression must evaluate to an object", "Expression must evaluate to an object"},
130         {"extends:", "extends: {0}"},
131         {"Extra tokens after breakpoint location", "Extra tokens after breakpoint location"},
132         {"Failed reading output", "Failed reading output of child java interpreter."},
133         {"Fatal error", "Fatal error:"},
134         {"Field access encountered before after", "Field ({0}) is {1}, will be {2}: "},
135         {"Field access encountered", "Field ({0}) access encountered: "},
136         {"Field to unwatch not specified", "Field to unwatch not specified."},
137         {"Field to watch not specified", "Field to watch not specified."},
138         {"GC Disabled for", "GC Disabled for {0}:"},
139         {"GC Enabled for", "GC Enabled for {0}:"},
140         {"grouping begin character", "{"},
141         {"grouping end character", "}"},
142         {"Illegal Argument Exception", "Illegal Argument Exception"},
143         {"Illegal connector argument", "Illegal connector argument: {0}"},
144         {"Illegal thread state", "Illegal thread state"},
145         {"implementor:", "implementor: {0}"},
146         {"implements:", "implements: {0}"},
147         {"Initializing progname", "Initializing {0} ..."},
148         {"Input stream closed.", "Input stream closed."},
149         {"Interface:", "Interface: {0}"},
150         {"Internal debugger error.", "Internal debugger error."},
151         {"Internal error: null ThreadInfo created", "Internal error: null ThreadInfo created"},
152         {"Internal error; unable to set", "Internal error; unable to set {0}"},
153         {"Internal exception during operation:", "Internal exception during operation:\n    {0}"},
154         {"Internal exception:", "Internal exception:"},
155         {"Invalid argument type name", "Invalid argument type name"},
156         {"Invalid assignment syntax", "Invalid assignment syntax"},
157         {"Invalid command syntax", "Invalid command syntax"},
158         {"Invalid connect type", "Invalid connect type"},
159         {"Invalid consecutive invocations", "Invalid consecutive invocations"},
160         {"Invalid exception object", "Invalid exception object"},
161         {"Invalid line number specified", "Invalid line number specified"},
162         {"Invalid <method_name> specification:", "Invalid <method_name> specification: {0}"},
163         {"Invalid option on class command", "Invalid option on class command"},
164         {"invalid option", "invalid option: {0}"},
165         {"Invalid thread status.", "Invalid thread status."},
166         {"Invalid <thread_id>:", "Invalid <thread_id>: {0}"},
167         {"Invalid transport name:", "Invalid transport name: {0}"},
168         {"Invalid <class>.<method_name> specification", "Invalid <class>.<method_name> specification"},
169         {"I/O exception occurred:", "I/O Exception occurred: {0}"},
170         {"is an ambiguous method name in", "\"{0}\" is an ambiguous method name in \"{1}\""},
171         {"is an invalid line number for",  "{0,number,integer} is an invalid line number for {1}"},
172         {"is not a valid class name", "\"{0}\" is not a valid class name."},
173         {"is not a valid field name", "\"{0}\" is not a valid field name."},
174         {"is not a valid id or class name", "\"{0}\" is not a valid id or class name."},
175         {"is not a valid line number or method name for", "\"{0}\" is not a valid line number or method name for class \"{1}\""},
176         {"is not a valid method name", "\"{0}\" is not a valid method name."},
177         {"is not a valid thread id", "\"{0}\" is not a valid thread id."},
178         {"is not a valid threadgroup name", "\"{0}\" is not a valid threadgroup name."},
179         {"jdb prompt with no current thread", "> "},
180         {"jdb prompt thread name and current stack frame", "{0}[{1,number,integer}] "},
181         {"killed", "{0} killed"},
182         {"killing thread:", "killing thread: {0}"},
183         {"Line number information not available for", "Source line numbers not available for this location."},
184         {"line number", ":{0,number,integer}"},
185         {"list field typename and name", "{0} {1}\n"},
186         {"list field typename and name inherited", "{0} {1} (inherited from {2})\n"},
187         {"list field typename and name hidden", "{0} {1} (hidden)\n"},
188         {"Listening at address:", "Listening at address: {0}"},
189         {"Local variable information not available.", "Local variable information not available.  Compile with -g to generate variable information"},
190         {"Local variables:", "Local variables:"},
191         {"<location unavailable>", "<location unavailable>"},
192         {"location", "\"thread={0}\", {1}"},
193         {"locationString", "{0}.{1}(), line={2,number,integer} bci={3,number,integer}"},
194         {"Main class and arguments must be specified", "Main class and arguments must be specified"},
195         {"Method arguments:", "Method arguments:"},
196         {"Method entered:", "Method entered: "},
197         {"Method exited:",  "Method exited"},
198         {"Method exitedValue:", "Method exited: return value = {0}, "},
199         {"Method is overloaded; specify arguments", "Method {0} is overloaded; specify arguments"},
200         {"minus version", "This is {0} version {1,number,integer}.{2,number,integer} (Java SE version {3})"},
201         {"Missing at or in", "Missing \"at\" or \"in\""},
202         {"Monitor information for thread", "Monitor information for thread {0}:"},
203         {"Monitor information for expr", "Monitor information for {0} ({1}):"},
204         {"More than one class named", "More than one class named: ''{0}''"},
205         {"native method", "native method"},
206         {"nested:", "nested: {0}"},
207         {"No attach address specified.", "No attach address specified."},
208         {"No breakpoints set.", "No breakpoints set."},
209         {"No class named", "No class named ''{0}''"},
210         {"No class specified.", "No class specified."},
211         {"No classpath specified.", "No classpath specified."},
212         {"No code at line", "No code at line {0,number,integer} in {1}"},
213         {"No connect specification.", "No connect specification."},
214         {"No connector named:", "No connector named: {0}"},
215         {"No current thread", "No current thread"},
216         {"No default thread specified:", "No default thread specified: use the \"thread\" command first."},
217         {"No exception object specified.", "No exception object specified."},
218         {"No exceptions caught.", "No exceptions caught."},
219         {"No expression specified.", "No expression specified."},
220         {"No field in", "No field {0} in {1}"},
221         {"No frames on the current call stack", "No frames on the current call stack"},
222         {"No linenumber information for", "No linenumber information for {0}.  Try compiling with debugging on."},
223         {"No local variables", "No local variables"},
224         {"No method in", "No method {0} in {1}"},
225         {"No method specified.", "No method specified."},
226         {"No monitor numbered:", "No monitor numbered: {0}"},
227         {"No monitors owned", "  No monitors owned"},
228         {"No object specified.", "No object specified."},
229         {"No objects specified.", "No objects specified."},
230         {"No save index specified.", "No save index specified."},
231         {"No saved values", "No saved values"},
232         {"No source information available for:", "No source information available for: {0}"},
233         {"No sourcedebugextension specified", "No SourceDebugExtension specified"},
234         {"No sourcepath specified.", "No sourcepath specified."},
235         {"No thread specified.", "No thread specified."},
236         {"No VM connected", "No VM connected"},
237         {"No waiters", "  No waiters"},
238         {"not a class", "{0} is not a class"},
239         {"Not a monitor number:", "Not a monitor number: ''{0}''"},
240         {"not found (try the full name)", "{0} not found (try the full name)"},
241         {"Not found:", "Not found: {0}"},
242         {"not found", "{0} not found"},
243         {"Not owned", "  Not owned"},
244         {"Not waiting for a monitor", "  Not waiting for a monitor"},
245         {"Nothing suspended.", "Nothing suspended."},
246         {"object description and id", "({0}){1}"},
247         {"Operation is not supported on the target VM", "Operation is not supported on the target VM"},
248         {"operation not yet supported", "operation not yet supported"},
249         {"Owned by:", "  Owned by: {0}, entry count: {1,number,integer}"},
250         {"Owned monitor:", "  Owned monitor: {0}"},
251         {"Parse exception:", "Parse Exception: {0}"},
252         {"printclearcommandusage", "Usage clear <class>:<line_number> or\n      clear <class>.<method_name>[(argument_type,...)]"},
253         {"printstopcommandusage",
254          "Usage: stop [go|thread] [<thread_id>] <at|in> <location>\n" +
255          "  If \"go\" is specified, immediately resume after stopping\n" +
256          "  If \"thread\" is specified, only suspend the thread we stop in\n" +
257          "  If neither \"go\" nor \"thread\" are specified, suspend all threads\n" +
258          "  If an integer <thread_id> is specified, only stop in the specified thread\n" +
259          "  \"at\" and \"in\" have the same meaning\n" +
260          "  <location> can either be a line number or a method:\n" +
261          "    <class_id>:<line_number>\n" +
262          "    <class_id>.<method>[(argument_type,...)]"
263         },
264         {"Removed:", "Removed: {0}"},
265         {"repeat is on", "Repeat is on"},
266         {"repeat is off", "Repeat is off"},
267         {"repeat usage", "Usage: repeat <on|off>"},
268         {"Requested stack frame is no longer active:", "Requested stack frame is no longer active: {0,number,integer}"},
269         {"run <args> command is valid only with launched VMs", "'run <args>' command is valid only with launched VMs"},
270         {"run", "run {0}"},
271         {"saved", "{0} saved"},
272         {"Set deferred", "Set deferred {0}"},
273         {"Set", "Set {0}"},
274         {"Source file not found:", "Source file not found: {0}"},
275         {"source line number and line", "{0,number,integer}    {1}"},
276         {"source line number current line and line", "{0,number,integer} => {1}"},
277         {"sourcedebugextension", "SourceDebugExtension -- {0}"},
278         {"Specify class and method", "Specify class and method"},
279         {"Specify classes to redefine", "Specify classes to redefine"},
280         {"Specify file name for class", "Specify file name for class {0}"},
281         {"stack frame dump with pc", "  [{0,number,integer}] {1}.{2} ({3}), pc = {4}"},
282         {"stack frame dump", "  [{0,number,integer}] {1}.{2} ({3})"},
283         {"Step completed:", "Step completed: "},
284         {"Stopping due to deferred breakpoint errors.", "Stopping due to deferred breakpoint errors.\n"},
285         {"subclass:", "subclass: {0}"},
286         {"subinterface:", "subinterface: {0}"},
287         {"tab", "\t{0}"},
288         {"Target VM failed to initialize.", "Target VM failed to initialize."},
289         {"The application exited", "The application exited"},
290         {"The application has been disconnected", "The application has been disconnected"},
291         {"The gc command is no longer necessary.", "The 'gc' command is no longer necessary.\n" +
292          "All objects are garbage collected as usual. Use 'enablegc' and 'disablegc'\n" +
293          "commands to control garbage collection of individual objects."},
294         {"The load command is no longer supported.", "The 'load' command is no longer supported."},
295         {"The memory command is no longer supported.", "The 'memory' command is no longer supported."},
296         {"The VM does not use paths", "The VM does not use paths"},
297         {"Thread is not running (no stack).", "Thread is not running (no stack)."},
298         {"Thread number not specified.", "Thread number not specified."},
299         {"Thread:", "{0}:"},
300         {"Thread Group:", "Group {0}:"},
301         {"Thread description name unknownStatus BP",  "  {0} {1} unknown (at breakpoint)"},
302         {"Thread description name unknownStatus",     "  {0} {1} unknown"},
303         {"Thread description name zombieStatus BP",   "  {0} {1} zombie (at breakpoint)"},
304         {"Thread description name zombieStatus",      "  {0} {1} zombie"},
305         {"Thread description name runningStatus BP",  "  {0} {1} running (at breakpoint)"},
306         {"Thread description name runningStatus",     "  {0} {1} running"},
307         {"Thread description name sleepingStatus BP", "  {0} {1} sleeping (at breakpoint)"},
308         {"Thread description name sleepingStatus",    "  {0} {1} sleeping"},
309         {"Thread description name waitingStatus BP",  "  {0} {1} waiting in a monitor (at breakpoint)"},
310         {"Thread description name waitingStatus",     "  {0} {1} waiting in a monitor"},
311         {"Thread description name condWaitstatus BP", "  {0} {1} cond. waiting (at breakpoint)"},
312         {"Thread description name condWaitstatus",    "  {0} {1} cond. waiting"},
313         {"Thread has been resumed", "Thread has been resumed"},
314         {"Thread not suspended", "Thread not suspended"},
315         {"thread group number description name", "{0,number,integer}. {1} {2}"},
316         {"<thread_id> option not valid until the VM is started with the run command",
317          "<thread_id> option not valid until the VM is started with the run command"},
318         {"Threads must be suspended", "Threads must be suspended"},
319         {"trace method exit in effect for", "trace method exit in effect for {0}"},
320         {"trace method exits in effect", "trace method exits in effect"},
321         {"trace methods in effect", "trace methods in effect"},
322         {"trace go method exit in effect for", "trace go method exit in effect for {0}"},
323         {"trace go method exits in effect", "trace go method exits in effect"},
324         {"trace go methods in effect", "trace go methods in effect"},
325         {"trace not in effect", "trace not in effect"},
326         {"Unable to attach to target VM.", "Unable to attach to target VM."},
327         {"Unable to display process output:", "Unable to display process output: {0}"},
328         {"Unable to launch target VM.", "Unable to launch target VM."},
329         {"Unable to set deferred", "Unable to set deferred {0} : {1}"},
330         {"Unable to set main class and arguments", "Unable to set main class and arguments"},
331         {"Unable to set", "Unable to set {0} : {1}"},
332         {"Unexpected event type", "Unexpected event type: {0}"},
333         {"unknown", "unknown"},
334         {"Unmonitoring", "Unmonitoring {0} "},
335         {"Unrecognized command.  Try help...", "Unrecognized command: ''{0}''.  Try help..."},
336         {"Usage: catch exception", "Usage: catch [uncaught|caught|all] <class id>|<class pattern>"},
337         {"Usage: ignore exception", "Usage: ignore [uncaught|caught|all] <class id>|<class pattern>"},
338         {"Usage: down [n frames]", "Usage: down [n frames]"},
339         {"Usage: kill <thread id> <throwable>", "Usage: kill <thread id> <throwable>"},
340         {"Usage: read <command-filename>", "Usage: read <command-filename>"},
341         {"Usage: unmonitor <monitor#>", "Usage: unmonitor <monitor#>"},
342         {"Usage: up [n frames]", "Usage: up [n frames]"},
343         {"Use java minus X to see", "Use 'java -X' to see the available non-standard options"},
344         {"VM already running. use cont to continue after events.", "VM already running. Use 'cont' to continue after events."},
345         {"VM Started:", "VM Started: "},
346         {"vmstartexception", "VM start exception: {0}"},
347         {"Waiting for monitor:", "   Waiting for monitor: {0}"},
348         {"Waiting thread:", " Waiting thread: {0}"},
349         {"watch accesses of", "watch accesses of {0}.{1}"},
350         {"watch modification of", "watch modification of {0}.{1}"},
351         {"zz help text",
352              "** command list **\n" +
353              "connectors                -- list available connectors and transports in this VM\n" +
354              "\n" +
355              "run [class [args]]        -- start execution of application's main class\n" +
356              "\n" +
357              "threads [threadgroup]     -- list threads in threadgroup. Use current threadgroup if none specified.\n" +
358              "thread <thread id>        -- set default thread\n" +
359              "suspend [thread id(s)]    -- suspend threads (default: all)\n" +
360              "resume [thread id(s)]     -- resume threads (default: all)\n" +
361              "where [<thread id> | all] -- dump a thread's stack\n" +
362              "wherei [<thread id> | all]-- dump a thread's stack, with pc info\n" +
363              "up [n frames]             -- move up a thread's stack\n" +
364              "down [n frames]           -- move down a thread's stack\n" +
365              "kill <thread id> <expr>   -- kill a thread with the given exception object\n" +
366              "interrupt <thread id>     -- interrupt a thread\n" +
367              "\n" +
368              "print <expr>              -- print value of expression\n" +
369              "dump <expr>               -- print all object information\n" +
370              "eval <expr>               -- evaluate expression (same as print)\n" +
371              "set <lvalue> = <expr>     -- assign new value to field/variable/array element\n" +
372              "locals                    -- print all local variables in current stack frame\n" +
373              "\n" +
374              "classes                   -- list currently known classes\n" +
375              "class <class id>          -- show details of named class\n" +
376              "methods <class id>        -- list a class's methods\n" +
377              "fields <class id>         -- list a class's fields\n" +
378              "\n" +
379              "threadgroups              -- list threadgroups\n" +
380              "threadgroup <name>        -- set current threadgroup to <name>\n" +
381              "threadgroup               -- set current threadgroup back to the top level threadgroup\n" +
382              "\n" +
383              "stop [go|thread] [<thread_id>] <at|in> <location>\n" +
384              "                          -- set a breakpoint\n" +
385              "                          -- if no options are given, the current list of breakpoints is printed\n" +
386              "                          -- if \"go\" is specified, immediately resume after stopping\n" +
387              "                          -- if \"thread\" is specified, only suspend the thread we stop in\n" +
388              "                          -- if neither \"go\" nor \"thread\" are specified, suspend all threads\n" +
389              "                          -- if an integer <thread_id> is specified, only stop in the specified thread\n" +
390              "                          -- \"at\" and \"in\" have the same meaning\n" +
391              "                          -- <location> can either be a line number or a method:\n" +
392              "                          --   <class_id>:<line_number>\n" +
393              "                          --   <class_id>.<method>[(argument_type,...)]\n" +
394              "clear <class id>.<method>[(argument_type,...)]\n" +
395              "                          -- clear a breakpoint in a method\n" +
396              "clear <class id>:<line>   -- clear a breakpoint at a line\n" +
397              "clear                     -- list breakpoints\n" +
398              "catch [uncaught|caught|all] <class id>|<class pattern>\n" +
399              "                          -- break when specified exception occurs\n" +
400              "ignore [uncaught|caught|all] <class id>|<class pattern>\n" +
401              "                          -- cancel 'catch' for the specified exception\n" +
402              "watch [access|all] <class id>.<field name>\n" +
403              "                          -- watch access/modifications to a field\n" +
404              "unwatch [access|all] <class id>.<field name>\n" +
405              "                          -- discontinue watching access/modifications to a field\n" +
406              "trace [go] methods [thread]\n" +
407              "                          -- trace method entries and exits.\n" +
408              "                          -- All threads are suspended unless 'go' is specified\n" +
409              "trace [go] method exit | exits [thread]\n" +
410              "                          -- trace the current method's exit, or all methods' exits\n" +
411              "                          -- All threads are suspended unless 'go' is specified\n" +
412              "untrace [methods]         -- stop tracing method entries and/or exits\n" +
413              "step                      -- execute current line\n" +
414              "step up                   -- execute until the current method returns to its caller\n" +
415              "stepi                     -- execute current instruction\n" +
416              "next                      -- step one line (step OVER calls)\n" +
417              "cont                      -- continue execution from breakpoint\n" +
418              "\n" +
419              "list [line number|method] -- print source code\n" +
420              "use (or sourcepath) [source file path]\n" +
421              "                          -- display or change the source path\n" +
422              "exclude [<class pattern>, ... | \"none\"]\n" +
423              "                          -- do not report step or method events for specified classes\n" +
424              "classpath                 -- print classpath info from target VM\n" +
425              "\n" +
426              "monitor <command>         -- execute command each time the program stops\n" +
427              "monitor                   -- list monitors\n" +
428              "unmonitor <monitor#>      -- delete a monitor\n" +
429              "read <filename>           -- read and execute a command file\n" +
430              "\n" +
431              "lock <expr>               -- print lock info for an object\n" +
432              "threadlocks [thread id]   -- print lock info for a thread\n" +
433              "\n" +
434              "pop                       -- pop the stack through and including the current frame\n" +
435              "reenter                   -- same as pop, but current frame is reentered\n" +
436              "redefine <class id> <class file name>\n" +
437              "                          -- redefine the code for a class\n" +
438              "\n" +
439              "disablegc <expr>          -- prevent garbage collection of an object\n" +
440              "enablegc <expr>           -- permit garbage collection of an object\n" +
441              "\n" +
442              "!!                        -- repeat last command\n" +
443              "<n> <command>             -- repeat command n times\n" +
444              "repeat                    -- show whether GDB-style empty command repetition is enabled\n" +
445              "repeat <on|off>           -- enable/disable GDB-style repetition\n" +
446              "# <command>               -- discard (no-op)\n" +
447              "help (or ?)               -- list commands\n" +
448              "dbgtrace [flag]           -- same as dbgtrace command line option\n" +
449              "version                   -- print version information\n" +
450              "exit (or quit)            -- exit debugger\n" +
451              "\n" +
452              "<class id>: a full class name with package qualifiers\n" +
453              "<class pattern>: a class name with a leading or trailing wildcard ('*')\n" +
454              "<thread id>: thread number as reported in the 'threads' command\n" +
455              "<expr>: a Java(TM) Programming Language expression.\n" +
456              "Most common syntax is supported.\n" +
457              "\n" +
458              "Startup commands can be placed in either \"jdb.ini\" or \".jdbrc\"\n" +
459              "in user.home or user.dir"},
460         {"zz usage text",
461              "Usage: {0} <options> <class> <arguments>\n" +
462              "\n" +
463              "where options include:\n" +
464              "    -? -h --help -help print this help message and exit\n" +
465              "    -sourcepath <directories separated by \"{1}\">\n" +
466              "                      directories in which to look for source files\n" +
467              "    -attach <address>\n" +
468              "                      attach to a running VM at the specified address using standard connector\n" +
469              "    -listen <address>\n" +
470              "                      wait for a running VM to connect at the specified address using standard connector\n" +
471              "    -listenany\n" +
472              "                      wait for a running VM to connect at any available address using standard connector\n" +
473              "    -launch\n" +
474              "                      launch VM immediately instead of waiting for ''run'' command\n" +
475              "    -listconnectors   list the connectors available in this VM\n" +
476              "    -connect <connector-name>:<name1>=<value1>,...\n" +
477              "                      connect to target VM using named connector with listed argument values\n" +
478              "    -dbgtrace [flags] print info for debugging {0}\n" +
479              "    -trackallthreads  Track all threads, including virtual threads.\n" +
480              "                      Virtual threads are a preview feature of the Java platform.\n" +
481              "    -tclient          run the application in the HotSpot(TM) Client Compiler\n" +
482              "    -tserver          run the application in the HotSpot(TM) Server Compiler\n" +
483              "    -R<option>        forward <option> to debuggee process if launched by jdb, otherwise ignored\n" +
484              "\n" +
485              "options forwarded to debuggee process if launched by jdb (shorthand instead of using -R):\n" +
486              "    -v -verbose[:class|gc|jni]\n" +
487              "                      turn on verbose mode\n" +
488              "    -D<name>=<value>  set a system property\n" +
489              "    -classpath <directories separated by \"{1}\">\n" +
490              "                      list directories in which to look for classes\n" +
491              "    -X<option>        non-standard target VM option\n" +
492              "\n" +
493              "<class> is the name of the class to begin debugging\n" +
494              "<arguments> are the arguments passed to the main() method of <class>\n" +
495              "\n" +
496              "For command help type ''help'' at {0} prompt"},
497         // END OF MATERIAL TO LOCALIZE
498         };
499 
500         return temp;
501     }
502 }