Module openj9.dtfj

Class DTFJJavaStackFrame

java.lang.Object
com.ibm.j9ddr.vm29.view.dtfj.java.DTFJJavaStackFrame
All Implemented Interfaces:
JavaLocation, JavaStackFrame

public class DTFJJavaStackFrame extends Object implements JavaStackFrame, JavaLocation
Combined JavaStackFrame & JavaLocation
  • Constructor Details

  • Method Details

    • getBasePointer

      public ImagePointer getBasePointer() throws CorruptDataException
      Description copied from interface: JavaStackFrame
      Get a pointer to the base of this stack frame
      Specified by:
      getBasePointer in interface JavaStackFrame
      Returns:
      the base pointer of the stack frame
      Throws:
      CorruptDataException
    • getHeapRoots

      public Iterator getHeapRoots()
      Description copied from interface: JavaStackFrame
      Get the set of object roots from this stack frame.
      Specified by:
      getHeapRoots in interface JavaStackFrame
      Returns:
      an iterator of JavaReferences
    • getLocation

      public JavaLocation getLocation() throws CorruptDataException
      Description copied from interface: JavaStackFrame
      Get the location at which the method owning this frame is currently executing
      Specified by:
      getLocation in interface JavaStackFrame
      Returns:
      a location object describing where the frame is executing
      Throws:
      CorruptDataException
      See Also:
    • getAddress

      public ImagePointer getAddress() throws CorruptDataException
      Description copied from interface: JavaLocation
      Fetches the absolute address of the code which this location represents. This pointer will be contained within one of the segments returned by getBytecodeSections() or getCompiledSections() of the method returned by getMethod().

      null may be returned, particularly for methods with no bytecode or compiled sections (e.g. some native methods)

      Although an offset into the method may be calculated using this pointer, caution should be exercised in attempting to map this offset to an offset within the original class file. Various transformations may have been applied to the bytecodes by the VM or other agents which may make the offset difficult to interpret.

      For native methods, the address may be meaningless.

      Specified by:
      getAddress in interface JavaLocation
      Returns:
      the address in memory of the managed code
      Throws:
      CorruptDataException
    • getCompilationLevel

      public int getCompilationLevel() throws CorruptDataException
      Description copied from interface: JavaLocation
      Get the compilation level for this location. This is an implementation defined number indicating the level at which the current location was compiled. 0 indicates interpreted. Any positive number indicates some level of JIT compilation. Typically, higher numbers indicate more aggressive compilation strategies

      For native methods, a non-zero compilation level indicates that some level of JIT compilation has been applied to the native call (e.g. a custom native call stub). To determine if the method is native, use getMethod().getModifiers().

      Specified by:
      getCompilationLevel in interface JavaLocation
      Returns:
      the compilation level
      Throws:
      CorruptDataException
    • getFilename

      public String getFilename() throws DataUnavailable, CorruptDataException
      Description copied from interface: JavaLocation
      Get the source file name.
      Specified by:
      getFilename in interface JavaLocation
      Returns:
      the name of the source file, if available, or throws DataUnavailable if it is not available
      Throws:
      DataUnavailable - if the source file name is unavailable in the core
      CorruptDataException
    • getLineNumber

      public int getLineNumber() throws DataUnavailable, CorruptDataException
      Description copied from interface: JavaLocation
      Get the line number.
      Specified by:
      getLineNumber in interface JavaLocation
      Returns:
      the line number, if available, or throws DataUnavailable if it is not available Line numbers are counted from 1
      Throws:
      DataUnavailable - if the line number data is not available for this location
      CorruptDataException
    • getMethod

      public JavaMethod getMethod() throws CorruptDataException
      Description copied from interface: JavaLocation
      Get the method which contains the point of execution.
      Specified by:
      getMethod in interface JavaLocation
      Returns:
      the method which contains the point of execution
      Throws:
      CorruptDataException
    • equals

      public boolean equals(Object obj)
      Description copied from class: java.lang.Object
      Compares the argument to the receiver, and answers true if they represent the same object using a class specific comparison. The implementation in Object answers true only if the argument is the exact same object as the receiver (==).
      Specified by:
      equals in interface JavaLocation
      Specified by:
      equals in interface JavaStackFrame
      Overrides:
      equals in class Object
      Parameters:
      obj - Object the object to compare with this object.
      Returns:
      boolean true if the object is the same as this object false if it is different from this object.
      See Also:
    • hashCode

      public int hashCode()
      Description copied from class: java.lang.Object
      Answers an integer hash code for the receiver. Any two objects which answer true when passed to .equals must answer the same value for this method.
      Specified by:
      hashCode in interface JavaLocation
      Specified by:
      hashCode in interface JavaStackFrame
      Overrides:
      hashCode in class Object
      Returns:
      the receiver's hash.
      See Also:
    • toString

      public String toString()
      Description copied from class: java.lang.Object
      Answers a string containing a concise, human-readable description of the receiver.
      Specified by:
      toString in interface JavaLocation
      Overrides:
      toString in class Object
      Returns:
      String a printable representation for the receiver.