Version: 9.3.28.v20191105 |

Enable remote debugging
Previous | Chapter 34. Debugging Home | Next

##### Contact the core Jetty developers at www.webtide.com

private support for your internal/customer projects ... custom extensions and distributions ... versioned snapshots for indefinite support ... scalability guidance for your apps and Ajax/Comet projects ... development services for sponsored feature development

## Enable remote debugging

### Remote Debugging

If you have a web application deployed into Jetty you can interact with it remotely from a debugging perspective easily. The basics are that you must start up the remote JVM with additional parameters and then start up a remote debugging session in Eclipse for the webapp in question. This is easily accomplished.

> ### Note

> This example assumes you are deploying your web application into the jetty-distribution.

#### Starting Jetty

Assuming you have your webapp deployed into jetty, there are two different ways to approach this:

Via command line

  Add the required parameters on the commandline like so.

      $ java -Xdebug -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n -jar start.jar

Via `start.ini`

  This approach is best used if you want to debug a particular jetty-distribution and not have to remember the commandline incantations.

  1. Edit the `start.ini` and uncomment the --exec line, this is required if you are adding jvm options to the start.ini file as jetty-start must generate the classpath required and fork a new jvm.

  2. Add the parameters mentioned above in the Command Line option so your start.ini looks like this:

         #===========================================================
         # Configure JVM arguments.
         # If JVM args are include in an ini file then --exec is needed
         # to start a new JVM from start.jar with the extra args.
         # If you wish to avoid an extra JVM running, place JVM args
         # on the normal command line and do not use --exec
         #-----------------------------------------------------------
         --exec
         -Xdebug
         -agentlib:jdwp=transport=dt_socket,address=9999,server=y,suspend=n
         # -Xmx2000m
         # -Xmn512m
         # -XX:+UseConcMarkSweepGC
         # -XX:ParallelCMSThreads=2
         # -XX:+CMSClassUnloadingEnabled
         # -XX:+UseCMSCompactAtFullCollection
         # -XX:CMSInitiatingOccupancyFraction=80
         # -verbose:gc
         # -XX:+PrintGCDateStamps
         # -XX:+PrintGCTimeStamps
         # -XX:+PrintGCDetails
         # -XX:+PrintTenuringDistribution
         # -XX:+PrintCommandLineFlags
         # -XX:+DisableExplicitGC

     Uncomment any other jvm environmental options you so desire for your debugging session.

  3. Regardless of the option chosen, you should see the following lines at the top of your jetty-distribution startup.

         Listening for transport dt_socket at address: 9999

#### Linking with your IDE

Refer to the documentation for your ide:

- Debugging With IntelliJ
- Debugging With Eclipse

Previous | Top | Next
Chapter 34. Debugging | Home | Debugging With IntelliJ

See an error or something missing? Contribute to this documentation at Github!(Generated: 2019-11-05)