You are on page 1of 8

19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ 

IDEA

IntelliJ IDEA  2022.2

Debugging / Tutorial: Remote debug

Tutorial: Remote debug


Last modified: 13 June 2022

In this tutorial, we'll learn how to attach to a local or remote process using the
IntelliJ IDEA debugger.

Create a project
First, let's set up the project that we'll be debugging (a simple program that outputs the
capital letters from A to Z ).

You can use your own project instead of the one created in this chapter. If you
do, make sure that:

• the app is compiled with debug information. This is the default compiler
setting and must not be overridden. Otherwise, most of the debugger
functionality will be unavailable.

• you have the source code of the application. While it is possible to use
decompiled code for debugging, it is more complicated and not covered in
this tutorial.
[X]
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more
1. Create a new project.
JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
2. Create
third-party a class
services for named Alphabet
this purpose. .
I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 1/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

3. In the body of the Alphabet class, paste the following definition of the main
method:

public static void main(String[] args) {

System.out.println("Starting");

for (char c = 'A'; c < 'Z'; c++) {

try {

Thread.sleep(2500);

} catch (InterruptedException e) {

e.printStackTrace();

System.out.println(c);

System.out.println("Complete");

Create run configurations


To allow the debugger to attach, we need to run the application with special parameters
(more on them shortly). In this tutorial, we'll set up a run/debug configuration that will
do this for us. This way, we are going to have two run/debug configurations: one for
[X]
running the app and another for attaching to it.
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more

Though
JetBrains may we are
use cookies andrunning and debugging
my IP address the application
to collect individual on the
statistics same
and to machine,
provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-partythe stepsfor
services arethis
thepurpose.
same for debugging
I can revoke my an application
consent thatbyis visiting
at any time indeed the
remote.
Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 2/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

Set up the debugger


First, we need to set up the run/debug configuration that will be used for attaching to
the host application.

1. From the main menu, select Run | Edit Configurations or press Alt+Shift+F10
then 0 .

2. In the Run/Debug Configurations dialog, click the Add New Configuration


button and select Remote JVM Debug.

3. Configure/use the following properties:

• Name: configure how this run configuration will be called. The name can be
anything, including the default value.

• Host: the address of the machine where the host app will run. Since we are
running it on the same machine, it needs to be localhost. If the program was
running on another machine, we would specify its address here, for example:
192.168.17.43.

• Command line arguments for remote JVM: the VM options that the host
application needs to be started with. We will use them in the other run/debug
[X]
Cookies
configuration. You can copy them now or get back to this field later.
and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more

JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 3/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

4. Click Apply.

Set up the host app


There are no restrictions on how exactly the host application needs to be run. For
example, you can package the app as a JAR and run it using the following command
line:

java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:50

For the purposes of debugging, there is no difference how we run the


application as long as it gets the VM options that start the program with the
debug agent.
[X]
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
In this tutorial,
personalized we are going
experience.
Our touses
website use cookies
a run/debug configuration
and collects that will
your IP address for do thepurposes.
these most of
Learn more
work for us.
JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.1. Right-click anywhere in the body of the Alphabet class. Select More
Run/Debug
[Yes, I agree]
, then Modify Run Configuration.
[No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 4/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

2. Click Modify options, then select Add VM options. In the VM options field,
paste the options that you copied from the debug configuration.

3. Click Apply.

Run the app


Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
[X]

personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more
Now that we prepared all that is necessary, we can proceed with running our
JetBrains may use cookies and my IP address to collect individual statistics and to provide
application. me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 5/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

• Press Alt+Shift+F10 and select Alphabet .

In the program output, the first line will be:

Listening for transport dt_socket at address: 5005

This indicates that we have enabled the debug agent and our program is ready to
accept incoming debugger connections.

Attach to process
1. Click the gutter at line 10 to set a line breakpoint there.

[X]
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more

JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes,2.
I agree]
Press [No, thanks]
Alt+Shift+F9 and select your remote debug configuration.

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 6/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

As the result, the program is suspended at the breakpoint, and you can perform any
debugging actions like stepping, expression evaluation, and so on.

The debugging process is the same regardless of how and where your app is launched.
After you have connected, you can use the same debugger features as if you were
launching your app right from IntelliJ IDEA.

Close the debug session


1. Close the corresponding session tab in the Debug tool window. [X]
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more

JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 7/8
19/09/2022, 10:15 Tutorial: Remote debug | IntelliJ IDEA

2. Select if you want to terminate the process or disconnect from it.

• Disconnect stops the debug session and the process continues to run.
• Terminate stops both the process and the debug session.

[X]
Cookies and IP addresses allow us to deliver
and improve our web content and to provide you with a
personalized experience.
Our website uses cookies and collects your IP address for these purposes.
Learn more

JetBrains may use cookies and my IP address to collect individual statistics and to provide me with
personalized offers and ads subject to the Privacy Policy and the Terms of Use.
JetBrains may use
third-party services for this purpose. I can revoke my consent at any time by visiting the Opt-Out
page.

[Yes, I agree] [No, thanks]

https://www.jetbrains.com/help/idea/tutorial-remote-debug.html 8/8

You might also like