public interface

IEBranchDetails

com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IEBranchDetails
Known Indirect Subclasses

Class Overview

Describe the side effects of a raw PC assignment. Branch-details are used as a placeholder until a IECall resolution is successful. They are also used for non "call-to-sub" PC-assignments, to specify additional targets, e.g., potential targets of an indirect intra-procedural jump.

Summary

Public Methods
abstract boolean addCandidate(int index, IBranchTarget candidate)
abstract boolean addCandidate(IBranchTarget candidate)
abstract boolean addCandidates(List<? extends IBranchTarget> candidates)
abstract List<IEVar> getDef()
Retrieve the list of defines.
abstract List<IBranchTarget> getDynamicTargetCandidates()
Retrieve the list of possible branch targets (may be N/A for the owner PC-assign).
abstract IPrototypeItem getNativePrototypeHint()
abstract PreRoutineInvocationDetails getPreInvocationDetails()
Get the pre-invocation details object, if one was set.
abstract List<IEVar> getSpoiled()
Retrieve the list of spoiled variables.
abstract SPDC getStackPointerDelta()
Convenience method.
abstract SPDDeterminer getStackPointerDeltaDeterminer()
abstract int getStackPointerDeltaValue()
Convenience method.
abstract List<IEVar> getUse()
Retrieve the list of uses.
abstract boolean isIncludeUnknownTarget()
abstract boolean setIncludeUnknownTarget(boolean includeUnknownTarget)
abstract boolean setNativePrototypeHint(IPrototypeItem nativePrototypeHint)
abstract boolean setPreInvocationDetails(PreRoutineInvocationDetails preInvocationDetails)
Set the optional pre-invocation details object.

Public Methods

public abstract boolean addCandidate (int index, IBranchTarget candidate)

Returns
  • true if the object was modified

public abstract boolean addCandidate (IBranchTarget candidate)

Returns
  • true if the object was modified

public abstract boolean addCandidates (List<? extends IBranchTarget> candidates)

Returns
  • true if the object was modified

public abstract List<IEVar> getDef ()

Retrieve the list of defines.

Returns
  • a read-only list

public abstract List<IBranchTarget> getDynamicTargetCandidates ()

Retrieve the list of possible branch targets (may be N/A for the owner PC-assign).

Returns
  • a read-only list

public abstract IPrototypeItem getNativePrototypeHint ()

Returns
  • optional hint (if not null, the returned prototype should not be directly modified)

public abstract PreRoutineInvocationDetails getPreInvocationDetails ()

Get the pre-invocation details object, if one was set.

Returns
  • may be null

public abstract List<IEVar> getSpoiled ()

Retrieve the list of spoiled variables.

Returns
  • a read-only list

public abstract SPDC getStackPointerDelta ()

Convenience method.

public abstract SPDDeterminer getStackPointerDeltaDeterminer ()

public abstract int getStackPointerDeltaValue ()

Convenience method.

public abstract List<IEVar> getUse ()

Retrieve the list of uses.

Returns
  • a read-only list

public abstract boolean isIncludeUnknownTarget ()

public abstract boolean setIncludeUnknownTarget (boolean includeUnknownTarget)

Returns
  • true if the object was modified

public abstract boolean setNativePrototypeHint (IPrototypeItem nativePrototypeHint)

Returns
  • true if the object was modified

public abstract boolean setPreInvocationDetails (PreRoutineInvocationDetails preInvocationDetails)

Set the optional pre-invocation details object.

Returns
  • true if the object was modified