java.lang.Object | ||
↳ | com.sun.tools.attach.VirtualMachine | |
↳ | sun.tools.attach.HotSpotVirtualMachine |
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Returns the current agent properties in the target virtual
machine.
| |||||||||||
Returns the current system properties in the target virtual machine.
| |||||||||||
Loads an agent.
| |||||||||||
Loads an agent library.
| |||||||||||
Load a native agent library by full pathname.
| |||||||||||
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
![]() | |||||||||||
![]() |
Returns the current agent properties in the target virtual machine.
The target virtual machine can maintain a list of properties on behalf of agents. The manner in which this is done, the names of the properties, and the types of values that are allowed, is implementation specific. Agent properties are typically used to store communication end-points and other agent configuration details. For example, a debugger agent might create an agent property for its transport address.
This method returns the agent properties whose key and value is a String. Properties whose key or value is not a String are omitted. If there are no agent properties maintained in the target virtual machine then an empty property list is returned.
IOException |
---|
Returns the current system properties in the target virtual machine.
This method returns the system properties in the target virtual
machine. Properties whose key or value is not a String are
omitted. The method is approximately equivalent to the invocation of the
method System.getProperties
in the target virtual machine except that properties with a key or
value that is not a String are not included.
This method is typically used to decide which agent to load into
the target virtual machine with loadAgent
, or
loadAgentLibrary
. For example, the
java.home
or user.dir
properties might be
use to create the path to the agent library or JAR file.
IOException |
---|
Loads an agent.
The agent provided to this method is a path name to a JAR file on the file
system of the target virtual machine. This path is passed to the target virtual
machine where it is interpreted. The target virtual machine attempts to start
the agent as specified by the java.lang.instrument
specification.
That is, the specified JAR file is added to the system class path (of the target
virtual machine), and the agentmain
method of the agent class, specified
by the Agent-Class
attribute in the JAR manifest, is invoked. This
method completes when the agentmain
method completes.
agent | Path to the JAR file containing the agent. |
---|---|
options | The options to provide to the agent's agentmain
method (can be null ). |
Loads an agent library.
A JVM
TI client is called an agent. It is developed in a native language.
A JVM TI agent is deployed in a platform specific manner but it is typically the
platform equivalent of a dynamic library. This method causes the given agent
library to be loaded into the target VM (if not already loaded).
It then causes the target VM to invoke the Agent_OnAttach
function
as specified in the
JVM Tools
Interface specification. Note that the Agent_OnAttach
function is invoked even if the agent library was loaded prior to invoking
this method.
The agent library provided is the name of the agent library. It is interpreted in the target virtual machine in an implementation-dependent manner. Typically an implementation will expand the library name into an operating system specific file name. For example, on UNIX systems, the name foo might be expanded to libfoo.so, and located using the search path specified by the LD_LIBRARY_PATH environment variable.
If the Agent_OnAttach
function in the agent library returns
an error then an AgentInitializationException
is
thrown. The return value from the Agent_OnAttach
can then be
obtained by invoking the returnValue
method on the exception.
agentLibrary | The name of the agent library. |
---|---|
options | The options to provide to the Agent_OnAttach
function (can be null ). |
Load a native agent library by full pathname.
A JVM
TI client is called an agent. It is developed in a native language.
A JVM TI agent is deployed in a platform specific manner but it is typically the
platform equivalent of a dynamic library. This method causes the given agent
library to be loaded into the target VM (if not already loaded).
It then causes the target VM to invoke the Agent_OnAttach
function
as specified in the
JVM Tools
Interface specification. Note that the Agent_OnAttach
function is invoked even if the agent library was loaded prior to invoking
this method.
The agent library provided is the absolute path from which to load the
agent library. Unlike loadAgentLibrary
, the library name
is not expanded in the target virtual machine.
If the Agent_OnAttach
function in the agent library returns
an error then an AgentInitializationException
is
thrown. The return value from the Agent_OnAttach
can then be
obtained by invoking the returnValue
method on the exception.
agentLibrary | The full path of the agent library. |
---|---|
options | The options to provide to the Agent_OnAttach
function (can be null ). |