JVM-Sanbox-Repeater 如何进行调试

在进行录制回放过程中,可能在启动过程出现错误,可能在开发插件过程中埋点没有生效等。这种时候如果可以进行打个断点进行单步调试一下,那就太爽了吧。JVM-Sanbox-Repeater 进行项目的录制和回放过程中也是可以进行调试的,通过 Java 探针--Java Agent 技术就可以实现。

扩展: jdk1.5 以后引入了 javaAgent 技术,javaAgent 是运行方法之前的拦截器。使用 javaAgent 能实现运行时修改字节码这个动作化于无形,对业务透明,减少侵入性。

快速开始

1.将测试项目用调试命令启动起来

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000   //8000是等待远程连接的端口号
     -javaagent:${HOME}/sandbox/lib/sandbox-agent.jar=server.port=8820\;server.ip=0.0.0.0       //8820是repeater配置文件中默认的端口
     -Dapp.name=repeater
     -Dapp.env=daily
     -jar /root/下载/springboot-1.0.1-SNAPSHOT.jar    // /root/下载/springboot-1.0.1-SNAPSHOT.jar为自己的测试项目

2. 启动 repeater-console

注意:如果你本地的 repeater 的配置文件 repeater.properties 中 repeat.standalone.mode=true ,使用单机工作模式。则第二步启动 repeater-console 就不需要执行了。

jar -jar repeater-console.jar

3. IDEA 配置远程调试

step0 将自己要调试的项目,例如 JVM-Sandbox-Repeater 在 IDEA 中打开

step1 选择运行中的 edit configuration

step2 配置远程调试配置

这里的端口和上面启动命令中的 8000 是一致的,IP 为启动测试项目所在的系统 IP

step3 运行远程调试,连接上测试项目

step4 开始调试

在 IDEA 中的 JVM-Sandbox-Repeater 中想要调试的地方打上断点
调用测试项目的接口,后面就和单步调试是一样的了


↙↙↙阅读原文可查看相关链接,并与作者交流