Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Breakpoint set with IntelliJ not working in premain of remote custom java agent

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?

like image 803
Faur Ioan-Aurel Avatar asked Oct 04 '22 08:10

Faur Ioan-Aurel


1 Answers

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.

like image 90
noahlz Avatar answered Oct 10 '22 02:10

noahlz