首先本地需要有两款IDEA
- 可以是相同版本,也可以是不同版本。反正要有两个,一个用来调试代码,一个启动。
移除原有ja-netfiler
- 打开你的ja-netfiler的
vmoptions
目录,修改其中的idea.vmoptions
文件。移除最后一行-javaagent ...
参数,避免影响。
新增一个远程JVM调试
- 新增远程JVM调试,用作我们自己的
ja-netfilter.jar
的agent调试。 - 复制命令行参数。
- 添加到你的idea安装目录/bin的idea.bat中,添加到%ACC% 后
Launcher主类设置为jdk17
- idea运行时jdk需要和Launcher的jdk版本一致,所以需要设置为jdk17
新建一个复合程序
- 添加Launcher程序和远程调试程序
运行idea.bat
- 使用命令行运行idea.bat 出现正在监听5005端口,表示正常
运行复合程序
- 选择带有Main的进程,参数随意
调试Ja-netfilter
- 上面在按下回车之前,记得在
Launcher.agentmain
方法的第一行打上一个断点。 - 键入回车后,正式进入agent的调试,此时会进入agent的入口方法
agentmain
中
随意发挥
- 后面就是Ja-netfilter加载它定义的插件了。
- 然后大家就都懂了,你可以在你想要看的地方打上断点