jdb (original) (raw)
Start a JDB Session
There are many ways to start a JDB session. The most frequently used way is to have JDB launch a new JVM with the main class of the application to be debugged. Do this by substituting the jdb
command for the java
command in the command line. For example, if your application's main class is MyClass
, then use the following command to debug it under JDB:
jdb MyClass
When started this way, the jdb
command calls a second JVM with the specified parameters, loads the specified class, and stops the JVM before executing that class's first instruction.
Another way to use the jdb
command is by attaching it to a JVM that is already running. Syntax for starting a JVM to which the jdb
command attaches when the JVM is running is as follows. This loads in-process debugging libraries and specifies the kind of connection to be made.
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n MyClass
You can then attach the jdb
command to the JVM with the following command:
jdb -attach 8000
The MyClass
argument is not specified in the jdb
command line in this case because the jdb
command is connecting to an existing JVM instead of launching a new JVM.
There are many other ways to connect the debugger to a JVM, and all of them are supported by the jdb
command. The Java Platform Debugger Architecture has additional documentation on these connection options.