Interface INativeDebuggerUnit

All Superinterfaces:
IAddressableUnit, IDebuggerUnit, IEventSource, IInteractiveUnit, IUnit, IUnitCreator, IUserDataSupport

public interface INativeDebuggerUnit extends IDebuggerUnit
Definition of native code debuggers.
  • Method Details

    • getProcessor

      IProcessor<? extends IInstruction> getProcessor()
      Retrieve the processor associated with this debugger.
      Returns:
      processor, or null if not applicable
    • getMemory

      Retrieve an VM object representing the memory of the target. Operations on that object are safe and will attempt to modify the state of the debuggee if it needs to.
      Returns:
      debugger virtual memory, or null if unavailable
    • readMemory

      int readMemory(long memoryAddress, int size, byte[] dst, int dstOffset)
      Read from memory. Optional method, supported only if the debugger allows direct memory access. If the memory cannot be read at the time of the call, the method should fail instead of attempting to modify the state of the debuggee to allow the read operation.
      Parameters:
      memoryAddress - source memory address
      size - number of bytes to read
      dst - destination buffer
      dstOffset - destination buffer offset
      Returns:
      number of bytes read, -1 on error
    • writeMemory

      int writeMemory(long memoryAddress, int size, byte[] src, int srcOffset)
      Write to memory. Optional method, supported only if the debugger allows direct memory access. If the memory cannot be written at the time of the call, the method may attempt to modify the state of the debuggee to allow the write operation.
      Parameters:
      memoryAddress - destination memory address
      size - number of bytes to write
      src - source buffer
      srcOffset - source buffer offset
      Returns:
      number of bytes written, -1 on error
    • setBreakpoint

      default IDebuggerBreakpoint setBreakpoint(long memoryAddress)
      Parameters:
      memoryAddress - requested breakpoint address
      Returns:
      the breakpoint or null on error or if not implemented
    • setBreakpoint

      IDebuggerBreakpoint setBreakpoint(long memoryAddress, int flags, int processorMode)
      Set a breakpoint at the explicit memory address. This method is valid only for targets supporting numerical addressing, such as physical processors.
      Parameters:
      memoryAddress - requested breakpoint address
      flags - , refer to IDebuggerBreakpoint
      processorMode - optional processor mode (see IProcessor.MODE_xxx constant)
      Returns:
      the breakpoint or null on error or if not implemented
    • getBreakpoint

      IDebuggerBreakpoint getBreakpoint(long memoryAddress)
      Get the breakpoints set at the explicit memory address.
      Parameters:
      memoryAddress - memory address
      Returns:
      the breakpoint or null on error or if not implemented