Interface IDebuggerThread


public interface IDebuggerThread
Standard interface for a thread object managed by a debugger.
  • Method Details

    • getId

      long getId()
      Get this thread id.
      Returns:
      the thread id
    • getName

      String getName()
      Get this thread name.
      Returns:
      the name, null if none
    • getStatus

      Get this thread status.
      Returns:
      the status, never null
    • canResume

      boolean canResume()
    • resume

      boolean resume()
      Resume this thread.
      Returns:
      true if the thread was resumed
    • canSuspend

      boolean canSuspend()
    • suspend

      boolean suspend()
      Suspend this thread.
      Returns:
      true if the thread was suspended
    • canStepInto

      boolean canStepInto()
    • stepInto

      boolean stepInto()
      Step one instruction, stepping inside sub-routine branching instructions.

      Implementation note: currently, debuggers implement step() as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint-hit event to make sure that the operation was successful.

      Returns:
      true if the operation succeeded
    • canStepOver

      boolean canStepOver()
    • stepOver

      boolean stepOver()
      Step one instruction, stepping over sub-routine branching instructions.

      Implementation note: currently, debuggers implement step() as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint-hit event to make sure that the operation was successful.

      Returns:
      true if the operation succeeded
    • canStepOut

      boolean canStepOut()
    • stepOut

      boolean stepOut()
      Step until the currently executed sub-routine returns.

      Implementation note: currently, debuggers implement step() as asynchronous operations. A success return value means that the operation partially succeeded. A client should wait for a breakpoint-hit event to make sure that the operation was successful.

      Returns:
      true if the operation succeeded
    • getFrameCount

      int getFrameCount()
      Get the number of frames in this thread.
      Returns:
      frame count, -1 on error
    • getTopFrame

      default IDebuggerThreadStackFrame getTopFrame()
      Returns:
    • getFrame

      IDebuggerThreadStackFrame getFrame(int index)
      Get a stack frame by index.
      Parameters:
      index - 0-based frame index
      Returns:
      the requested stack frame, null if invalid or on error
    • getFrames

      List<? extends IDebuggerThreadStackFrame> getFrames()
      Get the list of stack frames in the current thread. Most debuggers would require the thread be suspended for this operation to succeed. The first item in the list is the top-level stack-frame.
      Returns:
      stack frames, or null on error
    • getAddress

      String getAddress()
      Retrieve the address of the top frame of this thread.
      Returns:
      thread location, or null
    • getFrameAddresses

      List<String> getFrameAddresses(AddressForm form)
      Get the addresses for all frames of this suspended thread.
      Parameters:
      form -
      Returns:
      list of addresses, the first one being the top frame's
    • getRegisters

      IRegisterData getRegisters()
      Get the registers of a native unit (x86, arm...) or null when it is a VM thread (JVM).
      Returns:
      the list of registers
    • setRegisters

      boolean setRegisters(IRegisterData registers)
      Set native register data.
      Parameters:
      registers - register data
      Returns:
      true if the registers were set