I have a JVMTI agent which works on windows that I am trying to port to linux.
I have compiled to code on Ubuntu 10.04 using Eclipse and have created shared library .so file.
When I try to run an application with the agentpath argument, I get the error: "Could not find agent library in absolute path"
When trying to run the mtrace sample from the java JDK, it works fine.
My Java version is:
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
I also tried running nm | grep Agent_OnLoad and got the following:
00029220 T Agent_OnLoad
00036230 b ZGVZ12AgentOnLoadE4data
00030720 r ZZ12AgentOnLoadE19__PRETTY_FUNCTION__
00036240 b ZZ12AgentOnLoadE4data
My agent references several libraries such as boost asio and log4cxx could it be related somehow to these?
I think it might be some sort of compilation issue because on windows it works fine.
I managed to solve my problem.
It turned out that the error was caused by missing referenced libraries that were not linked in to my so file.
Once I added all of the required libraries, the agent started working.