Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to debug in Java with eclipse

Tags:

I am trying to debug a simple Java application on my machine using Eclipse as an IDE. When I try to debug the application by entering the Debug Perspective, I set a breakpoint and start debug. Within a few seconds, the following pop-up window:

Launching unicodeRead has encountered a problem. Cannot connect to VM.

The message dumped on the console is as follows:

ERROR: transport error 202: connect failed: Connection refused ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:708] FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)   

How do I correct this? Why does this happen?

like image 685
Sriram Avatar asked Sep 20 '11 15:09

Sriram


People also ask

How do I enable debugging in Eclipse?

A Java program can be debugged simply by right clicking on the Java editor class file from Package explorer. Select Debug As → Java Application or use the shortcut Alt + Shift + D, J instead.

How do I enable debugging in Java?

Click Java > JVM Settings tab. Under Debug Java Settings, select the Enable Debug checkbox. Provide JVM options as necessary by clicking the New button. If you substitute suspend=y, the JVM starts in suspended mode and stays suspended until a debugger attaches to it.


2 Answers

I just had the same problem.

Yesterday everything worked fine, now nothing - same error as you gave. I found out that network admins made some changes in the meantime. Some firewall stuff. Problem is that Eclipse tries to establish connection to JVM at "localhost" (and some random port). When I tried pinging localhost (or 127.0.0.1) I got following:

C:\Windows\system32>ping 127.0.0.1 Pinging 127.0.0.1 with 32 bytes of data: PING: transmit failed. General failure. PING: transmit failed. General failure. PING: transmit failed. General failure. PING: transmit failed. General failure. 

and

C:\Windows\system32>ping localhost Ping request could not find host localhost. Please check the name and try again. 

It seams that in some cases DNS is expected to resolve this, and if firewall prevents localhost requests to DNS - stuff breaks. I had to alter hosts file and remove comments in following lines, so I would not rely on DNS for this anymore:

# 127.0.0.1       localhost # ::1             localhost 

Although it is written that hosts file changes take effect immediately, I think that some processes locked this and restart was necessary in my case. After that, everything worked again.

like image 126
gonadarian Avatar answered Oct 18 '22 01:10

gonadarian


I was seeing an error while using the -X format:

java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n myapp 

The error went away when I switched to the newer format:

java -agentlib:jdwp=transport=dt_socket,server=y,address=4000,suspend=n myapp 
like image 41
user674669 Avatar answered Oct 18 '22 01:10

user674669