DNSBrood 是一款基于 dnsJava 的 DNS server,尚处于开发过程中,所以需要在其解析 DNS 的过程中进行 Debug 测试。但出于一些原因,Debug 必须在其打包好且正在运行的 Jar 包上进行。所以我将尝试 IDEA 的 Remote 远程 Debug 功能来进行测试工作。
IDEA 配置 Remote
-
进入 IDEA 的 Edit Configure 页面
-
在 add new configure 选项里面选择 remote
-
相应视图如下:
将红框框住的内容复制,用于下文的修改启动脚本,当然,这里有三段脚本内容,具体选择哪一段要视自己的实际情况来定。
-
点击确定。
修改启动脚本
修改启动脚本 blackhole.sh
首先设置两个变量:
JVM_OPTION="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
HOME_JAR=/yourpath/target/blackhole-1.2.2.jar
然后修改 start:
start)
echo "Starting blackhole..."
java -jar ${JVM_OPTION} -Djava.io.tmpdir="$HOME_DIR/cache" $HOME_JAR -d"$HOME_DIR">> $HOME_DIR/log &
;;
在修改 restart:
restart)
echo "Stopping blackhole..."
java -jar $HOME_DIR/lib/wifesays-1.0.0-alpha.jar -cshutdown > /dev/null;
sleep 2;
echo "Starting blackhole..."
java -jar ${JVM_OPTION} -Djava.io.tmpdir="$HOME_DIR/cache" $HOME_JAR -d"$HOME_DIR">> $HOME_DIR/log &
;;
接下来启动 DNSBrood,打开日志文件,如果有:
Listening for transport dt_socket at address: 5005
就说明配置正确
断点测试
因为整个项目是通过 socket 来判断用户处理 DNS 解析的请求,所以我们在运行 DNSBrood 的时候,还需要 DNSBee 来配合使用,两个系统的使用这篇博文先不多讲。
这里我们在 us.codecraft.wifesays.me.HusbandEar 这个类的 process 方法的
logger.info("wife says \"" + lineIn + "\" ,what you should do?");
这行代码上设置断点,然后通过 DNSBee 发送一段请求:
17-07-12 10:17:44,908 INFO us.codecraft.wifesays.me.HusbandEar(HusbandEar.java:83) ## wife says "delete_zones_ip_127.0.0.1" ,what you should do?
17-07-12 10:17:44,908 INFO us.codecraft.wifesays.me.HusbandEar(HusbandEar.java:83) ## wife says "add_zones_ip_127.0.0.1:6.7.4.5_gmail.liumapp.com" ,what you should do?
line is :127.0.0.1:6.7.4.5_gmail.liumapp.com
17-07-12 10:17:44,910 INFO us.codecraft.wifesays.me.HusbandEar(HusbandEar.java:83) ## wife says "add_zones_ip_127.0.0.1:55.55.55.55_gg.liumapp.com" ,what you should do?
line is :127.0.0.1:55.55.55.55_gg.liumapp.com
17-07-12 10:17:44,912 INFO us.codecraft.wifesays.me.HusbandEar(HusbandEar.java:83) ## wife says "add_zones_ip_127.0.0.1:88.88.88.8_tt.liumapp.com" ,what you should do?
line is :127.0.0.1:88.88.88.8_tt.liumapp.com
如果 IDEA 出现如下 Debug 信息:
那就说明 Debug 测试成功了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于