Module openj9.dtfj

Class ImageProcess

java.lang.Object
com.ibm.dtfj.image.j9.ImageProcess
All Implemented Interfaces:
ImageProcess
Direct Known Subclasses:
PartialProcess

public class ImageProcess extends Object implements ImageProcess
  • Constructor Details

  • Method Details

    • getCommandLine

      public String getCommandLine() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Fetch the command line for this process. This may be the exact command line the user issued, or it may be a reconstructed command line based on argv[] and argc.
      Specified by:
      getCommandLine in interface ImageProcess
      Returns:
      the command line for the process
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
    • getEnvironment

      public Properties getEnvironment() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Get the environment variables for this process.
      Specified by:
      getEnvironment in interface ImageProcess
      Returns:
      the environment variables for this process
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
    • getID

      Description copied from interface: ImageProcess
      Get the system-wide identifier for the process.
      Specified by:
      getID in interface ImageProcess
      Returns:
      a system-wide identifier for the process (e.g. a process id (pid) on Unix like systems)
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
    • getLibraries

      public Iterator getLibraries() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Get the set of shared libraries which are loaded in this process.
      Specified by:
      getLibraries in interface ImageProcess
      Returns:
      an iterator to iterate over the shared libraries which are loaded in this process
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
      See Also:
    • getExecutable

      public ImageModule getExecutable() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Get the module representing the executable within the image.
      Specified by:
      getExecutable in interface ImageProcess
      Returns:
      the module representing the executable within the image (as opposed to modules representing libraries)
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
      See Also:
    • getThreads

      public Iterator getThreads()
      Description copied from interface: ImageProcess
      Get the set of image threads in the image.
      Specified by:
      getThreads in interface ImageProcess
      Returns:
      an iterator to iterate over each ImageThread in the image There is not necessarily any relationship between JavaThreads and ImageThreads. A JVM implementation may use an n:m mapping of JavaThreads to ImageThreads, and not all ImageThreads are necessarily attached.
      See Also:
    • getCurrentThread

      public ImageThread getCurrentThread() throws CorruptDataException
      Description copied from interface: ImageProcess
      Find the thread which triggered the creation of the image
      Specified by:
      getCurrentThread in interface ImageProcess
      Returns:
      the ImageThread which caused the image to be created, or null if the image was not created due to a specific thread
      Throws:
      CorruptDataException
      See Also:
    • getRuntimes

      public Iterator getRuntimes()
      Description copied from interface: ImageProcess
      Get the set of the known ManagedRuntime environments in the image.
      Specified by:
      getRuntimes in interface ImageProcess
      Returns:
      an iterator to iterate over all of the known ManagedRuntime environments in the image. In a typical image, there will be only one runtime, and it will be an instance of JavaRuntime. However any user of this API should be aware that there is a possibility that other runtimes may exist in the image
      See Also:
    • getSignalNumber

      public int getSignalNumber() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Get the OS signal number in this process which triggered the creation of this image.
      Specified by:
      getSignalNumber in interface ImageProcess
      Returns:
      the OS signal number in this process which triggered the creation of this image, or 0 if the image was not created because of a signal in this process
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
    • getSignalName

      public String getSignalName() throws DataUnavailable, CorruptDataException
      Description copied from interface: ImageProcess
      Get the name of the OS signal in this process which triggered the creation of this image.
      Specified by:
      getSignalName in interface ImageProcess
      Returns:
      the name of the OS signal in this process which triggered the creation of this image, or null if the image was not created because of a signal in this process
      Throws:
      DataUnavailable - if the information cannot be provided
      CorruptDataException
    • getPointerSize

      public int getPointerSize()
      Description copied from interface: ImageProcess
      Determine the pointer size used by this process. Currently supported values are 31, 32 or 64. In the future, other pointer sizes may also be supported.
      Specified by:
      getPointerSize in interface ImageProcess
      Returns:
      the size of a pointer, in bits
    • addRuntime

      public void addRuntime(JavaRuntime vm)
    • setFaultingThreadID

      public void setFaultingThreadID(long nativeID)
    • setSignalNumber

      public void setSignalNumber(int signalNumber)
      TODO: REMOVE THIS once there is a reliable way to find signal numbers from ImageThreads on all platforms!
      Parameters:
      signalNumber -
    • runtimeExtractionFailed

      public void runtimeExtractionFailed(Exception e)
      Called if the early extraction of the data from the meta-data and core file failed in some unrecoverable way. If this is called it essentially means that we are stuck in native Image data and can't describe anything from the Java side.
      Parameters:
      e - The exception which caused the failure
    • setThreads

      protected void setThreads(Iterator threads)
    • setCurrentThread

      protected void setCurrentThread(ImageThread thread)
    • getProperties

      public Properties getProperties()
      Description copied from interface: ImageProcess
      Gets the OS specific properties for this process.
      Specified by:
      getProperties in interface ImageProcess
      Returns:
      a set of OS specific properties