java.lang.Object
java.lang.ClassLoader
java.security.SecureClassLoader
com.ibm.j9ddr.J9DDRClassLoader
This ClassLoader serves two purposes.
1) Based on partitioning rules and package namespaces it ensures that
certain classes are loaded once per runtime invocation while others
are loaded once per CORE file being inspected.
2) Generate bytecode at runtime based on the data in the core file (or
structure metadata file) for the J9 structure constants and offsets;
as well as pointer classes. These classes are explicitly loaded on a
per CORE file basis.
The isolation is accomplished by removing the Application Class Loader
from the class load delegation chain AND setting this class loader's
classpath to be equal to the Application class loader's classpath.
While the user may replace the application class loader with their own
implementation, the application class loader MUST be a subclass of
URLClassLoader.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiongetIVMData
(IProcess process, long address) Get the structure reader used by this classloader.Class<?>
Attempts to load the typeclassName
in the running VM, optionally linking the type after a successful load.Class<?>
loadClassRelativeToStream
(String name, boolean resolve) Methods declared in class java.security.SecureClassLoader
defineClass, defineClass, getPermissions
Methods declared in class java.lang.ClassLoader
clearAssertionStatus, clone, defineClass, defineClass, defineClass, defineClass, definePackage, findClass, findClass, findLibrary, findLoadedClass, findResource, findResource, findResources, findSystemClass, getClassLoadingLock, getDefinedPackage, getDefinedPackages, getName, getPackage, getPackages, getParent, getPlatformClassLoader, getResource, getResourceAsStream, getResources, getSystemClassLoader, getSystemResource, getSystemResourceAsStream, getSystemResources, getUnnamedModule, isRegisteredAsParallelCapable, loadClass, registerAsParallelCapable, resolveClass, resources, setClassAssertionStatus, setDefaultAssertionStatus, setPackageAssertionStatus, setSigners
-
Constructor Details
-
J9DDRClassLoader
-
-
Method Details
-
getHeader
-
loadClassRelativeToStream
public Class<?> loadClassRelativeToStream(String name, boolean resolve) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
loadClass
Description copied from class:java.lang.ClassLoader
Attempts to load the typeclassName
in the running VM, optionally linking the type after a successful load.- Overrides:
loadClass
in classClassLoader
- Parameters:
name
- String the name of the class to search for.resolve
- boolean indicates if class should be resolved after loading.- Returns:
- java.lang.Class the Class object.
- Throws:
ClassNotFoundException
- If the class could not be found.
-
getStructures
-
getIVMData
public IVMData getIVMData(IProcess process, long address) throws ClassNotFoundException, IllegalAccessException, InstantiationException -
getReader
Get the structure reader used by this classloader.- Returns:
-