Package ghidra.debug.api.tracemgr

# Class DebuggerCoordinates

java.lang.Object
ghidra.debug.api.tracemgr.DebuggerCoordinates

public class DebuggerCoordinates extends Object

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final DebuggerCoordinates`
  `NOWHERE`
  Coordinates that indicate no trace is active in the Debugger UI.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `differsOnlyByPatch(DebuggerCoordinates that)`
  Checks if the given coordinates are the same as this but with an extra or differing patch.
  `boolean`
  `equals(Object obj)`
  `static boolean`
  `equalsIgnoreTargetAndView(DebuggerCoordinates a, DebuggerCoordinates b)`
  `DebuggerCoordinates`
  `frame(int newFrame)`
  `DebuggerCoordinates`
  `frame(Integer newFrame)`
  `protected static DomainFile`
  `getDomainFile(PluginTool tool, SaveState coordState)`
  `int`
  `getFrame()`
  `Language`
  `getLanguage()`
  `TraceObject`
  `getObject()`
  `KeyPath`
  `getPath()`
  `TracePlatform`
  `getPlatform()`
  `TraceObject`
  `getRegisterContainer()`
  `long`
  `getSnap()`
  `Target`
  `getTarget()`
  `TraceThread`
  `getThread()`
  `TraceSchedule`
  `getTime()`
  `Trace`
  `getTrace()`
  `TraceProgramView`
  `getView()`
  `long`
  `getViewSnap()`
  `int`
  `hashCode()`
  `boolean`
  `isAlive()`
  `static boolean`
  `isAlive(Target target)`
  `boolean`
  `isAliveAndPresent()`
  `static boolean`
  `isAliveAndPresent(TraceProgramView view, Target target)`
  `boolean`
  `isAliveAndReadsPresent()`
  `boolean`
  `isDeadOrPresent()`
  `protected boolean`
  `isPresent()`
  `protected boolean`
  `isReadsPresent()`
  `boolean`
  `isRegisterSpace(AddressSpace space)`
  `DebuggerCoordinates`
  `object(TraceObject newObject)`
  `DebuggerCoordinates`
  `path(KeyPath newPath)`
  `DebuggerCoordinates`
  `pathNonCanonical(KeyPath newPath)`
  `DebuggerCoordinates`
  `platform(TracePlatform newPlatform)`
  `static DebuggerCoordinates`
  `readDataState(PluginTool tool, SaveState saveState, String key)`
  `DebuggerCoordinates`
  `reFindThread()`
  `protected static Integer`
  `resolveFrame(Target target, KeyPath objectPath)`
  `protected static TraceThread`
  `resolveThread(Target target, KeyPath objectPath)`
  `DebuggerCoordinates`
  `snap(long snap)`
  Get these same coordinates with time replaced by the given snap-only schedule
  `DebuggerCoordinates`
  `snapNoResolve(long snap)`
  Get these same coordinates with time replace by the given snap-only schedule, and DO NOT resolve or adjust anything else
  `DebuggerCoordinates`
  `target(Target newTarget)`
  `DebuggerCoordinates`
  `thread(TraceThread newThread)`
  `DebuggerCoordinates`
  `time(TraceSchedule newTime)`
  Get these same coordinates with time replaced by the given schedule
  `String`
  `toString()`
  `DebuggerCoordinates`
  `trace(Trace newTrace)`
  `DebuggerCoordinates`
  `view(TraceProgramView newView)`
  `void`
  `writeDataState(PluginTool tool, SaveState saveState, String key)`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### NOWHERE

    public static final DebuggerCoordinates NOWHERE
    Coordinates that indicate no trace is active in the Debugger UI.

    Typically, that only happens when no trace is open. Telling the trace manager to activate `NOWHERE` will cause it to instead activate the most recently active trace, which may very well be the current trace, resulting in no change. Internally, the trace manager will activate `NOWHERE` whenever the current trace is closed, effectively activating the most recent trace other than the one just closed.

- ## Method Details

  - ### equalsIgnoreTargetAndView

    public static boolean equalsIgnoreTargetAndView(DebuggerCoordinates a, DebuggerCoordinates b)

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`

  - ### equals

    public boolean equals(Object obj)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### trace

    public DebuggerCoordinates trace(Trace newTrace)

  - ### platform

    public DebuggerCoordinates platform(TracePlatform newPlatform)

  - ### target

    public DebuggerCoordinates target(Target newTarget)

  - ### reFindThread

    public DebuggerCoordinates reFindThread()

  - ### thread

    public DebuggerCoordinates thread(TraceThread newThread)

  - ### snap

    public DebuggerCoordinates snap(long snap)
    Get these same coordinates with time replaced by the given snap-only schedule
    Parameters:
      `snap` - the new snap
    Returns:
      the new coordinates

  - ### snapNoResolve

    public DebuggerCoordinates snapNoResolve(long snap)
    Get these same coordinates with time replace by the given snap-only schedule, and DO NOT resolve or adjust anything else
    Parameters:
      `snap` - the new snap
    Returns:
      exactly these same coordinates with the snap/time changed

  - ### time

    public DebuggerCoordinates time(TraceSchedule newTime)
    Get these same coordinates with time replaced by the given schedule
    Parameters:
      `newTime` - the new schedule
    Returns:
      the new coordinates

  - ### differsOnlyByPatch

    public boolean differsOnlyByPatch(DebuggerCoordinates that)
    Checks if the given coordinates are the same as this but with an extra or differing patch.
    Parameters:
      `that` - the other coordinates
    Returns:
      true if the difference is only in the final patch step

  - ### frame

    public DebuggerCoordinates frame(int newFrame)

  - ### frame

    public DebuggerCoordinates frame(Integer newFrame)

  - ### view

    public DebuggerCoordinates view(TraceProgramView newView)

  - ### path

    public DebuggerCoordinates path(KeyPath newPath)

  - ### pathNonCanonical

    public DebuggerCoordinates pathNonCanonical(KeyPath newPath)

  - ### resolveThread

    protected static TraceThread resolveThread(Target target, KeyPath objectPath)

  - ### resolveFrame

    protected static Integer resolveFrame(Target target, KeyPath objectPath)

  - ### object

    public DebuggerCoordinates object(TraceObject newObject)

  - ### getTrace

    public Trace getTrace()

  - ### getPlatform

    public TracePlatform getPlatform()

  - ### getLanguage

    public Language getLanguage()

  - ### getTarget

    public Target getTarget()

  - ### getThread

    public TraceThread getThread()

  - ### getView

    public TraceProgramView getView()

  - ### getSnap

    public long getSnap()

  - ### getTime

    public TraceSchedule getTime()

  - ### getFrame

    public int getFrame()

  - ### getPath

    public KeyPath getPath()

  - ### getObject

    public TraceObject getObject()

  - ### getRegisterContainer

    public TraceObject getRegisterContainer()

  - ### isRegisterSpace

    public boolean isRegisterSpace(AddressSpace space)

  - ### getViewSnap

    public long getViewSnap()

  - ### writeDataState

    public void writeDataState(PluginTool tool, SaveState saveState, String key)

  - ### getDomainFile

    protected static DomainFile getDomainFile(PluginTool tool, SaveState coordState)

  - ### readDataState

    public static DebuggerCoordinates readDataState(PluginTool tool, SaveState saveState, String key)

  - ### isAlive

    public static boolean isAlive(Target target)

  - ### isAlive

    public boolean isAlive()

  - ### isAliveAndPresent

    public static boolean isAliveAndPresent(TraceProgramView view, Target target)

  - ### isPresent

    protected boolean isPresent()

  - ### isReadsPresent

    protected boolean isReadsPresent()

  - ### isAliveAndPresent

    public boolean isAliveAndPresent()

  - ### isDeadOrPresent

    public boolean isDeadOrPresent()

  - ### isAliveAndReadsPresent

    public boolean isAliveAndReadsPresent()