我已经开始实现一个简单的 Java 代理,它在 JVM 加载类之前执行一些检测。问题是我需要对此代理进行一些调试,但是到目前为止我尝试的方法都失败了(我尝试远程调试代理但它不起作用)
我使用 IntelliJ 和 Maven(生成 .jar 代理)。
所以我的问题是:远程调试一个简单的java代理有什么技巧吗?
我已经开始实现一个简单的 Java 代理,它在 JVM 加载类之前执行一些检测。问题是我需要对此代理进行一些调试,但是到目前为止我尝试的方法都失败了(我尝试远程调试代理但它不起作用)
我使用 IntelliJ 和 Maven(生成 .jar 代理)。
所以我的问题是:远程调试一个简单的java代理有什么技巧吗?
事实证明,我有一个演示 Java 检测的项目,我已经在 IntelliJ 中对其进行了调试测试。断点工作。您可以将其用作参考。
https://github.com/noahlz/weaver-demo
IntelliJ 的示例运行/调试配置
此外,如果您正在远程调试,premain 可能会在您附加到调试器之前执行。尝试在您传递给运行代理代码的 JVM 的调试命令中更改suspend=n
为。suspend=y
这样,它将等到您连接 IntelliJ 后再继续。