What I did not yet explain was, what I understand under the notion "slicing information". I want to illustrate this by describing some of the information that is provided by the user interface of our program slicing tool.
The program slicer inserts bi-directional hypertext links between the calls and the destinations of the call. These hypertext links ease the navigation between the called procedures and all possible call sites.
Furthermore we introduce hypertext links between the usages of variables and all reaching definitions. This makes the flow of the values of the variables obvious to the programmer.
For every parameter we insert parameter summary elements which indicate the usage of the parameter as input parameters, as output parameters or as input and output parameters. These parameter summary elements also indicate possible errors, for example if an input parameter is never used or if an output parameter is not set under certain conditions.
For dynamically bound procedure calls we insert "polymorphic choice nodes". These polymorphic choice nodes show all possible destinations of the respective call. The user can then interactively disable some or all of the call destinations.