使用JDB调试Java程序

本文介绍了如何使用JDK自带的JDB工具、Eclipse和IntelliJ IDEA进行Java程序的远程调试。通过设置参数启动Java程序使其处于调试模式,并详细说明了在不同环境中附加调试的步骤和命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用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上的第二种方式,其他地方相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值