public static class

CFGUtil.BlockGroup

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.units.code.CFGUtil.BlockGroup

Class Overview

Given a start block A and an end block B, find the group of blocks G flowing from A to B, such that: 1) all blocks in G are reachable from A; 2) no blocks in G are reachable from B. Note that if A is reachable by B, G is the empty collection.

The list of exit blocks in G are those having B as an immediate successor. There may be none.

The list of entry blocks in G are those having an immediate predecessor not reachable by A. There may be none.

Important note: Irregular flows are disregarded.

Summary

Public Constructors
BlockGroup(CFG<? extends IInstruction> cfg, long blkoffStart, long blkoffStopper)
Public Methods
Set<Long> determine()
Determine the group.
Set<Long> getBlocksInGroup()
Retrieve the list of blocks in the group.
Set<Long> getEntryPoints()
Retrieve the list of entry blocks in the group.
Set<Long> getExitPoints()
Retrieve the list of exit blocks in the group.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public BlockGroup (CFG<? extends IInstruction> cfg, long blkoffStart, long blkoffStopper)

Public Methods

public Set<Long> determine ()

Determine the group.

Returns
  • the list of blocks in the group

public Set<Long> getBlocksInGroup ()

Retrieve the list of blocks in the group.

Returns
  • may be empty

public Set<Long> getEntryPoints ()

Retrieve the list of entry blocks in the group.

Returns
  • may be empty

public Set<Long> getExitPoints ()

Retrieve the list of exit blocks in the group.

Returns
  • may be empty