使用JDB调试Java程序

使用JDB调试Java程序


1.使用JDK的JDB工具附加调试Java程序

首先用以下命令启动Java程序:

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 -jar test.jar

注意命令中有参数suspend=n,指定JAVA以调试模式运行,监听本地8000端口,并且等待连接时不挂起,正常运行。

用以下命令附加到上面运行的JAVA程序,用以调试分析:

jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000

之后就可以用threads、thread、where、list等命令开始调试了。

2.使用Eclipse远程调试Java程序

使用Eclipse分为两种方式,一是JAR端作为服务器,监听一个端口号,Eclipse连接到此端口号开始调试;二是Eclipse作为服务器,监听一个端口号,JAR端连接到此端口,方法如下:

  • 把JAVA程序打包JAR后,在CMD下输入
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar test.jar

然后在Eclipse中加上断点,右击项目->Debug As->Debug Configurations,双击Remote Java Application,Connection Type选择Standard (Socket Attach),填好远程主机和端口号,单击Debug就可以远程调试了

  • 在Eclipse中加上断点,右击项目->Debug As->Debug Configurations,双击Remote Java Application,Connection Type选择Standard (Socket Listen),填好端口号,单击Debug开始监听,状态栏将显示消息“waiting for vm to connect at port 8000…”,然后运行JAR程序
java -Xdebug -Xrunjdwp:transport=dt_socket,address=192.168.10.205:8000,suspend=y -jar remoting-debug.jar  

3.使用IntelliJ IDEA远程调试Java程序

点击 Run -> Remote,在Configuration栏目下Settings框中配置具体信息,Transport上选择Socket,Debugger mode上选择Attach或者Listen,Attach相当于Eclipse上的第一种方式,Listen相当于Eclipse上的第二种方式,其他地方相同。

你可能感兴趣的:(Java)