I've started to implement a simple Java agent that does some instrumentation before a class is loaded by JVM. The thing is I need to do some debugging on this agent, but what I tried so far had failed( I tried to remote debug the agent but it's not working)

I use IntelliJ and Maven( to generate the .jar agent).

So my question:Is there any trick to remote debug a simple java agent?

有帮助吗?

解决方案

As it turns out I have a project that demos Java instrumentation, which I have tested out debugging in IntelliJ. Breakpoints work. You can use it as a reference.

https://github.com/noahlz/weaver-demo

Sample run/debug configuration from IntelliJ

Agent App Run/Debug

Also, if you are debugging remotely, the premain might be executing before you can attach to the debugger. Try changing suspend=n to suspend=y in the debug command you are passing to the JVM running the agent code. That way, it will wait until you connect with IntelliJ before proceeding.

其他提示

For people using VSCode, I just figured out that breakpoints in premain work for me if I use the integratedTerminal, and that they DONT WORK if I use internalConsole!!!

enter image description here

"java.debug.settings.console": "integratedTerminal"

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top