public class


extends Object

Class Overview

IR-offset to/from native-address conversion lists.

Note that the native addresses mapping from an IR statement are stored in the IR itself (see getLowerLevelAddresses()). However, a complete mapping, for an entire IR CFG or statements list, may be built using the static methods offered by this class.


Public Constructors
AddressConversionLists(Map<Long, Integer> nativeToInter, Map<Integer, Long> interToNative)
Public Methods
Long convertIntermediateOffset(int offset)
Integer convertNativeAddress(long address)
static String formatConversionLists(Map<Integer, Long> interToNative, Map<Long, Integer> nativeToInter)
static AddressConversionLists generateFromCFG(CFG<IEStatement> cfg)
Generate conversion lists from a CFG.
static AddressConversionLists generateFromList(List<IEStatement> stmlist)
Map<Integer, Long> getInterToNative()
List<Integer> getIntermediateOffsetsMappingToNativeAddress(long address)
List<Long> getNativeAddressesMappingToIntermediateOffset(int offset)
Map<Long, Integer> getNativeToInter()
void record(long nativeAddress, int irOffset)
String toString()
Inherited Methods
From class java.lang.Object

Public Constructors

public AddressConversionLists (Map<Long, Integer> nativeToInter, Map<Integer, Long> interToNative)

Public Methods

public Long convertIntermediateOffset (int offset)

public Integer convertNativeAddress (long address)

public static String formatConversionLists (Map<Integer, Long> interToNative, Map<Long, Integer> nativeToInter)

public static AddressConversionLists generateFromCFG (CFG<IEStatement> cfg)

Generate conversion lists from a CFG.

cfg a CFG
  • a conversion-lists object containing IR<>Native mapping information
IllegalStateException in DEBUG mode only, if the CFG and/or its statements contain inconsistencies

public static AddressConversionLists generateFromList (List<IEStatement> stmlist)

public Map<Integer, Long> getInterToNative ()

public List<Integer> getIntermediateOffsetsMappingToNativeAddress (long address)

public List<Long> getNativeAddressesMappingToIntermediateOffset (int offset)

public Map<Long, Integer> getNativeToInter ()

public void record (long nativeAddress, int irOffset)

public String toString ()