public interface

INativeDecompilerUnit

implements IDecompilerUnit IDecompilerManager
com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerUnit<InsnType extends com.pnfsoftware.jeb.core.units.code.IInstruction>

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
Public Methods
abstract IDecompiledMethod decompileMethodEx(INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage)
Decompile or retrieve the current decompilation object for a method.
abstract INativeSourceUnit decompileToUnit(INativeItem item)
abstract INativeSourceUnit decompileToUnit(String identifier, DecompilationContext ctx)
Retrieve a decompiled unit or perform a decompilation.
abstract INativeSourceUnit decompileToUnit(String identifier)
Retrieve a decompiled unit or perform a decompilation.
abstract INativeSourceUnit decompileToUnit(INativeItem item, DecompilationContext ctx)
abstract INativeCodeUnit<InsnType> getCodeUnit()
Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.
abstract IEConverter<InsnType> getConverter()
Retrieve a decompiler-provided native code converter.
abstract INativeSourceUnit getDecompiledUnit(INativeItem item)
abstract INativeSourceUnit getDecompiledUnit(String identifier)
Retrieve the unit representing the decompiled entity at the provided identifier/address.
abstract INativeDecompilerExtensionsManager getExtensionsManager()
abstract List<? extends IEOptimizerInfo> getOnDemandIROptimizers(String identifier)
Retrieve a list of on-demand optimizers that can be enabled or disabled for this decompiler.
abstract ITypeManager getTypeManager()
Convenience method.
abstract IWildcardTypeManager getWildcardTypeManager()
Convenience method.
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.IUnitCreator
From interface com.pnfsoftware.jeb.core.IUserDataSupport
From interface com.pnfsoftware.jeb.core.units.IAddressableUnit
From interface com.pnfsoftware.jeb.core.units.IInteractiveUnit
From interface com.pnfsoftware.jeb.core.units.IUnit
From interface com.pnfsoftware.jeb.core.units.code.IDecompilerUnit
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.IDecompilerManager
From interface com.pnfsoftware.jeb.util.events.IEventSource

Public Methods

public abstract IDecompiledMethod decompileMethodEx (INativeMethodItem method, DecompilationContext ctx, NativeDecompilationStage wantedStage)

Decompile or retrieve the current decompilation object for a method.

public abstract INativeSourceUnit decompileToUnit (INativeItem item)

public abstract INativeSourceUnit decompileToUnit (String identifier, DecompilationContext ctx)

Retrieve a decompiled unit or perform a decompilation. This is a high-level function used to decompile and generate meaningful (to clients) source code units. The decompiler may normalize the identifier.

If a source unit encompassing the provided identifier address already exists, it is returned.

Parameters
identifier the identifier or address at which the decompilation should be performed
ctx optional decompilation context and options
Returns
  • a source unit, null on error

public abstract INativeSourceUnit decompileToUnit (String identifier)

Retrieve a decompiled unit or perform a decompilation. This is a high-level function used to decompile generate meaningful (to clients) decompiled code units. The decompiler may normalize the identifier.

Parameters
identifier the identifier or address at which the decompilation should be performed
Returns
  • the source unit

public abstract INativeSourceUnit decompileToUnit (INativeItem item, DecompilationContext ctx)

public abstract INativeCodeUnit<InsnType> getCodeUnit ()

Get the code unit (possibly the parent, possibly null) that is providing the low-level data to this decompiler.

Returns
  • a code unit, possibly null

public abstract IEConverter<InsnType> getConverter ()

Retrieve a decompiler-provided native code converter. The converter provides translation facility from native code to JEB IR objects, called IRE (Intermediate Representation Expressions), see documentation here.

Note: a decompiler object has one and only one code converter.

Returns
  • a native-to-IR converter

public abstract INativeSourceUnit getDecompiledUnit (INativeItem item)

public abstract INativeSourceUnit getDecompiledUnit (String identifier)

Retrieve the unit representing the decompiled entity at the provided identifier/address. No decompilation is performed.

Parameters
identifier the identifier or address
Returns
  • the unit or null, if no decompilation at the provided identifier previously took place

public abstract INativeDecompilerExtensionsManager getExtensionsManager ()

public abstract List<? extends IEOptimizerInfo> getOnDemandIROptimizers (String identifier)

Retrieve a list of on-demand optimizers that can be enabled or disabled for this decompiler. Note that the client is responsible for re-decompiling, if optimizers were enabled or disabled.

public abstract ITypeManager getTypeManager ()

Convenience method.

public abstract IWildcardTypeManager getWildcardTypeManager ()

Convenience method.