# Class: com.pnfsoftware.jeb.core.units.code.debug.impl.DebuggerUtil

Utility methods for [IDebuggerUnit](IDebuggerUnit).

## Static Method: getPotentialDebuggee
- parameter: `manager`, type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerUnit`
- parameter: `memoryAddress`, type: `long`
- return type: `com.pnfsoftware.jeb.core.units.code.ICodeUnit`

Description: Retrieve the [ICodeUnit](ICodeUnit) that may contain the long memory address.
 If there is only one potential debuggee, it is returned. Otherwise, it searches for a potential debuggee which manages long memory address \(for example [INativeCodeUnit](INativeCodeUnit)\).
parameter: manager: debugger unit
parameter: memoryAddress: memory address
return: potential debuggee, or null

## Static Method: readMemorySafe
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.code.asm.INativeDebuggerUnit`
- parameter: `address`, type: `long`
- parameter: `maxlength`, type: `int`
- return type: `byte[]`

Description: Read exact memory data at specified address. The result length can be different from length if some data is not accessible or does not exist.
parameter: unit: debugger
parameter: address: base address
parameter: maxlength: wanted length \(max\)
return: null on error, else the memory data buffer, whose size will be in \[0, length\]

## Static Method: readMemoryStringSafe
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.code.asm.INativeDebuggerUnit`
- parameter: `address`, type: `long`
- parameter: `length`, type: `int`
- return type: `byte[]`

Description: Temporarily disabled. Same as [#readMemorySafe(IDebuggerUnit, long, int)](#readMemorySafe(IDebuggerUnit, long, int)).
parameter: unit: debugger unit
parameter: address: base address
parameter: length: maximum number of bytes to read
return: memory data, or null on error

## Static Method: valueEquals
- parameter: `va`, type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerVariable`
- parameter: `vb`, type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerVariable`
- return type: `boolean`

Description: Fast test equality between two variable values. Faster than using [IDebuggerVariable#getTypedValue()](IDebuggerVariable#getTypedValue()) because it can bypass some data retrieval.
parameter: va: first variable
parameter: vb: second variable
return: true when variable share the same value

