Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2018101 | 1.2.0 | Robert Field | P2 | Resolved | Fixed | 1.2beta3 |
If an application crashes while it is being debugged remotely, the remote debugger is unaware of the break in the connection and causes an exception to be thrown.
To reproduce this behavior two terminal windows are required. If the attached source code is compiled and ran in the first window as follows:
%javac_g TestMe.java
%java_g -debug TestMe
the system returns the following line:
Agent password=5cwyx2
In the second terminal window, type the following:
jdb -password 5cwyx2
where 5cwyx2 is the password returned in the first terminal window. While the debugger is running in the second terminal window you may enter standard debugger commands, such as memory and threads. But if you were to cause the application running in the first terminal window to crash by typing Cmd-c, then the following message is issued:
The communications channel closed.
And any subsequent debugger commands such as threads will get a message such as the following:
Group system:
Internal exception:
java.io.EOFException
at java.io.DataInputStream.readBoolean(DataInputStream.java)
at sun.tools.debug.RemoteAgent.readValue(RemoteAgent.java:377)
at sun.tools.debug.RemoteAgent.listThreads(RemoteAgent.java:514)
at sun.tools.debug.RemoteThreadGroup.listThreads(RemoteThreadGroup.java:74)
at sun.tools.ttydebug.TTY.printThreadGroup(TTY.java:161)
at sun.tools.ttydebug.TTY.threads(TTY.java:223)
at sun.tools.ttydebug.TTY.executeCommand(TTY.java:1331)
at sun.tools.ttydebug.TTY.<init>(TTY.java:1469)
at sun.tools.ttydebug.TTY.main(TTY.java:1590)
To reproduce this behavior two terminal windows are required. If the attached source code is compiled and ran in the first window as follows:
%javac_g TestMe.java
%java_g -debug TestMe
the system returns the following line:
Agent password=5cwyx2
In the second terminal window, type the following:
jdb -password 5cwyx2
where 5cwyx2 is the password returned in the first terminal window. While the debugger is running in the second terminal window you may enter standard debugger commands, such as memory and threads. But if you were to cause the application running in the first terminal window to crash by typing Cmd-c, then the following message is issued:
The communications channel closed.
And any subsequent debugger commands such as threads will get a message such as the following:
Group system:
Internal exception:
java.io.EOFException
at java.io.DataInputStream.readBoolean(DataInputStream.java)
at sun.tools.debug.RemoteAgent.readValue(RemoteAgent.java:377)
at sun.tools.debug.RemoteAgent.listThreads(RemoteAgent.java:514)
at sun.tools.debug.RemoteThreadGroup.listThreads(RemoteThreadGroup.java:74)
at sun.tools.ttydebug.TTY.printThreadGroup(TTY.java:161)
at sun.tools.ttydebug.TTY.threads(TTY.java:223)
at sun.tools.ttydebug.TTY.executeCommand(TTY.java:1331)
at sun.tools.ttydebug.TTY.<init>(TTY.java:1469)
at sun.tools.ttydebug.TTY.main(TTY.java:1590)
- backported by
-
JDK-2018101 quitEvent is not being sent to the remote debugger.
-
- Resolved
-
- relates to
-
JDK-4106729 VM started with application hangs after quitting from the remote debugger
-
- Closed
-