-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8787
然后使用
jdb -attach 8787
以上两种方式中方法一较为简单,但是需要以debug模式启动。如果需要调试的部分可能需要在运行一段时间才能出现,则可以使用第二种方法。先启用tomcat的jdwp,到了需要调试的时候再attch到应用中。
断点设置
断点也有两种设置断点,一种是通过行号设置断点,一种是通过方法名设置断点(只能设置方法的入口断点)
stop at com.zving.test.ui.TestUI:13
stop in com.zving.test.ui.TestUI.execute
查看和删除断点
> clear #查看断点
断点集:
断点com.zving.ui.TestUI:13
断点com.zving.ui.TestUI.execute
> clear com.zving.ui.TestUI:13 #删除断点
已删除: 断点com.zving.ui.TestUI:13
当进入断点时,命令行将会显示被阻塞的线程的名称
断点命中: "线程=http-8080-2", com.zving.test.ui.TestUI.execute(), 行=13 bci=0
http-8080-2[1]
通过locals指令可以查看断点处的全局和局部变量
http-8080-2[1] locals
方法参数:
za = instance of com.zving.framework.core.handler.ZAction(id=3919)
本地变量:
a = 1
b = 2
通过eval 可以执行简单的表达式
http-8080-2[1] eval a+b
a+b = 3
示例中使用的代码
publicclass TestUI extends UIFacade {
@Priv(login=false)
@Alias("test")
publicvoid execute(ZAction za){
inta = $I("a");
intb = $I("b");
za.writeHTML(a+"+"+b+"="+(a+b));
}
}
所有评论仅代表网友意见