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

Utility methods for [IDebuggerUnit](IDebuggerUnit).

## Constructor: DebuggerUtil


## 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 contains 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)\).

## Static Method: isNativeCodeDebugger
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerUnit`
- return type: `boolean`

Description: 
parameter: unit: 
return: 

## Static Method: readMemorySafe
- parameter: `unit`, type: `com.pnfsoftware.jeb.core.units.code.debug.IDebuggerUnit`
- 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.debug.IDebuggerUnit`
- parameter: `address`, type: `long`
- parameter: `length`, type: `int`
- return type: `byte[]`

Description: Temporarily disabled. Same as [#readMemorySafe(IDebuggerUnit, long, int)](#readMemorySafe(IDebuggerUnit, long, int)).

## 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

