使用jdb对tomcat进行远程调试

在工作中,经常遇到项目在生产系统遇到问题,而在测试环境或者开发环境不能复现,这时候一个重要的方法就是要在生产系统进行调试,这里调试分为两种:

  1. 使用开发工具(eclipse)进行远程调试;
  2. 使用jdb进行远程调试,或服务器(生产系统)端调试;

首先介绍一下jdb,jdb即java debugger,是随jdk发布的java命令行调试工具,什么情况下需要用jdb工具进行调试呢?比如,客户不在本地,或者没有条件赶赴客户现场,客户现场只能提供一个远程桌面环境(如:teamview获取qq远程),这样就不能将开放工具连接到生产系统,只能通过jdb这样的命令行调试工具。

以上两种调试方式,不管采用哪一种,都需要在tomcat的启动脚本中设置JVM虚拟机参数,以便是tomcat JVM虚拟机工作在debug模式:

-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n

或者:

-Xdebug -Xrunjdwp,transport=dt_socket,server=y,address=5432,suspend=n,onthrow=java.io.IOException,launch=/sbin/echo

transport指定了调试数据的传送方式,dt_socket是指用SOCKET模式,另有dt_shmem指用共享内存方式,其中,dt_shmem只适用于Windows平台(windows平台使用jdb调试时,只能用dt_shmem方式,用eclipse远程调试则不限)。 
server参数是指是否支持在server模式的VM中. 
onthrow指明,当产生该类型的Exception时,JVM就会中断下来,进行调式。该参数可选。 
launch指明,当JVM被中断下来时,执行的可执行程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大柳树伯爵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值