Java远程Debug

By | 2016年6月1日

HelloWorld.java程序,只是简单的print “Hello the world.”。

Client launched with debug server

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y HelloWorld
  • transport=dt_socket,设置传输模式,socket模式可以跨机器debug。
  • sever=y,client可deugger可以互为服务器,y表示client是服务器。Eclipse debugger需要attache改client。
  • suspend=y,是否已启动,就挂起。某些情况下debug需要。
  • [optional] address,如果server是n,则需要用address去主动连接。address=127.0.0.1:8000

JDB Debug

jdb HelloWorld -SocketAttach:hostname=localhost,port=57568

Eclipse Debug

Debug configurations -> Remote Java Application,new一个remote debug launcher。

  • Name:随便起个名字。
  • Project:程序对应的Project。
  • Connection Type: 如果程序启动时server=y,则选择Standard (Socket Attach),否则选择Standard (Socket Listen)。
  • Host:服务器IP或Alias
  • Port:端口号

然后Debug程序便可。

References

Debug Java applications remotely with Eclipse