[英]JDB -connect IO.Execption with no message
我有一個 java 應用程序在服務器 (linux) 上運行,其 ip 是 10.7.185.168:8123,使用此命令。
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8123 OurApplication
我嘗試從另一台機器(windows)調試它:
jdb -connect com.sun.jdi.SocketAttach:hostname=10.7.185.168,port=8123 -dbgtrace 0x00ffffff
但這會導致以下堆棧跟蹤
java.io.IOException
at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:238)
at jdk.jdi/com.sun.tools.jdi.VirtualMachineManagerImpl.createVirtualMachine(VirtualMachineManagerImpl.java:245)
at jdk.jdi/com.sun.tools.jdi.GenericAttachingConnector.attach(GenericAttachingConnector.java:120)
at jdk.jdi/com.sun.tools.jdi.SocketAttachingConnector.attach(SocketAttachingConnector.java:83)
at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.attachTarget(VMConnection.java:519)
at jdk.jdi/com.sun.tools.example.debug.tty.VMConnection.open(VMConnection.java:328)
at jdk.jdi/com.sun.tools.example.debug.tty.Env.init(Env.java:63)
at jdk.jdi/com.sun.tools.example.debug.tty.TTY.main(TTY.java:1087)
我在其他討論握手失敗的線程中看到了對 IO 異常的引用,但這里似乎並非如此。
有任何想法嗎?
作為這個問題的后續行動。 我和我的團隊一起發現防火牆 TCP 規則似乎是罪魁禍首。 簡單來說,java調試的TCP數據包太大,被我公司的防火牆自動攔截了。 通過 NC unix 命令進行 ping 和連接的數據包足夠小,可以毫無問題地進行連接。 我最終選擇了一種替代方法來調試我的代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.