我在试图摆脱这个异常时遇到了麻烦。我编写了一个程序,使用“com.sun.jdi.SocketAttach”作为附加连接器将调试器附加到远程服务器,一旦建立连接,我添加了一个调试目标。
vm = connector.attach(map)
debugTarget = JDIDebugModel.newDebugTarget(launch, remoteVM, name, null, false, true, true)
launch.addDebugTarget()
我的代码工作正常,但每次我关闭与服务器有活动调试连接的 Eclipse 工作区时都会出现此异常。看起来像这样:
!ENTRY org.eclipse.jdt.debug 4 125 2014-05-28 11:20:22.562
!MESSAGE Internal error logged from JDI Debug:
!STACK 0
com.sun.jdi.VMDisconnectedException: Got IOException from Virtual Machine
at org.eclipse.jdi.internal.connect.PacketSendManager.sendPacket(PacketSendManager.java:89)
at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:186)
at org.eclipse.jdi.internal.MirrorImpl.requestVM(MirrorImpl.java:226)
at org.eclipse.jdi.internal.request.EventRequestImpl.disable(EventRequestImpl.java:217)
at org.eclipse.jdi.internal.request.EventRequestManagerImpl.deleteEventRequest(EventRequestManagerImpl.java:367)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.removeRequests(JavaBreakpoint.java:769)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaBreakpoint.removeFromTarget(JavaBreakpoint.java:716)
at org.eclipse.jdt.internal.debug.core.breakpoints.JavaLineBreakpoint.removeFromTarget(JavaLineBreakpoint.java:187)
at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.removeAllBreakpoints(JDIDebugTarget.java:1566)
at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.cleanup(JDIDebugTarget.java:1522)
at org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget.shutdown(JDIDebugTarget.java:1658)
at org.eclipse.jdt.internal.debug.core.JDIDebugPlugin.stop(JDIDebugPlugin.java:345)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$2.run(BundleContextImpl.java:771)
at java.security.AccessController.doPrivileged(AccessController.java:330)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.stop(BundleContextImpl.java:764)
at org.eclipse.osgi.framework.internal.core.BundleHost.stopWorker(BundleHost.java:510)
在调查该问题后,我发现即使在 VM 断开连接后客户端向 VM 发送请求时也会引发此异常。但就我而言,我没有在服务器上部署任何应用程序,也没有调试任何应用程序,在关闭工作区后,我仍然收到此异常。
我试图实现 DebugEventListener 但不确定是否在正确的轨道上。如果您知道如何解决此问题,请告知。
谢谢