Module openj9.dtfj

Class DsaStackFrame

java.lang.Object
com.ibm.dtfj.corereaders.zos.le.DsaStackFrame

public class DsaStackFrame extends Object
This class represents a single LE stack frame (aka DSA). Use getParentFrame() to get the stack frame that called this one. XXX see ceekdmdr
  • Constructor Details

    • DsaStackFrame

      public DsaStackFrame(long address, boolean isDownStack, RegisterSet registers, AddressSpace space, Caa caa) throws IOException
      Create a new DsaStackFrame from the given dsa address and with the given stack direction.
      Throws:
      IOException
  • Method Details

    • getAddressSpace

      public AddressSpace getAddressSpace()
      Returns the AddressSpace we belong to.
    • getDsaAddress

      public long getDsaAddress()
      Returns the address of the DSA for this stack frame.
    • getRegisterSet

      public RegisterSet getRegisterSet()
      Returns the current register set (or null if there are no saved registers).
    • getEntryOffset

      public long getEntryOffset()
      Returns the offset from the function entry point. This is the offset within the function's executable code where the call was made to the successor stack frame.
    • getEntryPoint

      public long getEntryPoint()
      Returns the entry point address for the function belonging to this dsa.
    • getEntryName

      public String getEntryName()
      Returns the name of the function
    • getParentFrame

      public DsaStackFrame getParentFrame()
      Returns the caller of this stack frame.
      Returns:
      the stack frame for the function that called this one or null if we have reached the bottom of the stack
    • getFunction

      public Function getFunction()
      Returns the function call that this stack frame represents.
    • getEntryPointName

      public static String getEntryPointName(AddressSpace space, long ep) throws IOException
      Returns the function name for the given entry point address. XXX This was borrowed from the old svcdump code. We really should reuse some of the code elsewhere in this class that obtains the name but it's currently horribly intertwined with other DSA logic. Might be possible to fake up a DSA?
      Throws:
      IOException