Header menu logo B2R2

ProgramPoint Type

Represents a specific location in a lifted program. We represent this as a three-tuple: (address of the instruction, index of the IR stmt for the instruction, call site information). The third element (call site) is optional and only meaningful for abstract vertices.

Constructors

Constructor Description

ProgramPoint(callsite, addr, pos)

Full Usage: ProgramPoint(callsite, addr, pos)

Parameters:
    callsite : CallSite
    addr : uint64
    pos : int

Returns: ProgramPoint

Constructs an abstract program point at the given address and IR statement index, associated with the given call site information.

callsite : CallSite
addr : uint64
pos : int
Returns: ProgramPoint

ProgramPoint(addr, pos)

Full Usage: ProgramPoint(addr, pos)

Parameters:
    addr : uint64
    pos : int

Returns: ProgramPoint

Constructs a program point at the given address and IR statement index, with no call site.

addr : uint64
pos : int
Returns: ProgramPoint

Instance members

Instance member Description

this.Address

Full Usage: this.Address

Returns: Addr

Gets the address of the instruction.

Returns: Addr

this.CallSite

Full Usage: this.CallSite

Returns: CallSite option

Gets the call site if this program point refers to an abstract vertex.

Returns: CallSite option

this.CompareTo

Full Usage: this.CompareTo

Parameters:
Returns: int

Compares against another program point.

rhs : ProgramPoint
Returns: int

this.IsFake

Full Usage: this.IsFake

Returns: bool

Checks if this is a fake program point.

Returns: bool

this.Next

Full Usage: this.Next

Returns: ProgramPoint

Returns the next program point by incrementing the position by one. If this is a fake program point, it is returned as-is.

Returns: ProgramPoint

this.Position

Full Usage: this.Position

Returns: int

Gets the index of the IR statement within the instruction.

Returns: int

Static members

Static member Description

ProgramPoint.Fake

Full Usage: ProgramPoint.Fake

Returns: ProgramPoint

Returns a fake program point to represent a fake vertex, which does not exist in a CFG. Fake vertices are useful for representing external function calls and their nodes in the SCFG.

Returns: ProgramPoint

Type something to start searching.