Path Analysis UtilitiesΒΆ

Operations to begin analyses with

class VyPRAnalysis.orm.operations.PathCollection(paths, scfg, function_name, parametric=False)

Models a set of paths, obtained by direct reconstruction or modification of already reconstructed paths.

critical_points_in_code()

Based on the intersection of the paths held by the current collection, determine the points of divergence in the relevant source code.

intersection(starting_vertex=None)

Return a ParametricPathCollection instance containing the single path resulting from the intersection of all paths in the current collection.

merge(other_path_collection)

Add other_path_collection to the current list of paths.

show_critical_points_in_file(filename=None, verbose=False)

Write out a version of a monitored file with markers to show instructions where paths diverged that lead to observations that VyPR recorded diverged.

class VyPRAnalysis.orm.operations.ParametricPathCollection(paths, original_paths, path_parameters, scfg, function_name)

Models a collection of paths, all of which diverge at the same point in the source code and start at the beginning of the monitored function.

class VyPRAnalysis.orm.operations.PartialPathCollection(paths, scfg, function_name, parametric=False)

Models a collection of paths which do not start from the starting vertex of the Symbolic Control-Flow Graph.

intersection()

Perform intersection, but such that the parse trees used are generated starting from the beginning of each path (we assume the paths start in the same place).

class VyPRAnalysis.orm.operations.PartialParametricPathCollection(paths, original_paths, path_parameters, scfg, function_name)

Models a collection of paths which all diverge at the same point in the source code, and do not start at the beginning of the monitored function.

get_path_parameters()

Get the list of path parameters, which are objects that can be used internally to determine which subpath was taken by a given program path at a specific point in the program.

get_subpaths_from_parameter(path_parameter)

Given a PathParameter object in path_parameter, get the subpath given to it by this parametric path.

intersection()

Perform intersection, but such that the parse trees used are generated starting from the beginning of each path (we assume the paths start in the same place).

class VyPRAnalysis.orm.operations.ObservationCollection(observations)

A collection of observation objects. Defines methods for transformation to a PathCollection object.

to_paths(scfg)

Based on the relevant Symbolic Control-Flow Graph for the current collection of observations, reconstruct the paths up to each observation through the Symbolic Control-Flow Graph and return a PathCollection.