关于远程调试的问题

远程调试NameNodeRpcServer.sendHear(Hadoop版本为Apache Hadoop2.6.0)
配置hadoop-env.sh

开始设置设置断点进行调试,能够正常命中断点,但如果清除断点,再次在相同的地方重新设置断点则一直不能命中断点,除非重启NameNode才能继续调试,如下图:
第一次正确命中断点:

这时清除断点退出调试,如果再次开启调试重新在上次调试相同的地方设置断点,却再也不命中断点了,为什么?如下图

hadoopStudy

赞同来自:

图片没传成功,再传一次: 第一可以命中断点
1477052363760.png
退出再次调试,就不命中断点了
1477052392297.png
 

wangxiaolei

赞同来自:

runjdwp参数怎么配置的

hadoopStudy

赞同来自:

hadop-env.sh中的配置:

hadoopStudy

赞同来自:

export HADOOP_NAMENODE_OPTS=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=52902"

fish - Hadooper

赞同来自:

第一次命中断点之后,请先cont再exit退出,然后再第二次进做测试看看有什么效果。

hadoopStudy

赞同来自:

结果还是以后再调试再也不命中断点,除非重新启动HDFS,
1477117192362.png
 

fish - Hadooper

赞同来自:

前面一次,先clear掉breakpoint,然后cont,然后exit。   然后再做第二次,如此呢?

hadoopStudy

赞同来自:

这次可以再次命中了,为什么呢?又试了几次,好像只能按这个顺序,否则就再也不能进行第二次调试了,除非重启服务

fish - Hadooper

赞同来自:

因为第一次debug设置断点之后,在exit之前,断点被命中,被调试程序block住了。

要回复问题请先登录注册