Module openj9.dtfj

Class 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 Detail

      • 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 Detail

      • 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