General debugging support
and Eclipse integration
When a currently executing StreamIt program is suspended at a breakpoint or watchpoint, there are five windows of interest to the
user—the Debug, Variable, StreamIt text editor,
Stream Graph, and Overview of Stream Graph windows. When a StreamIt
program becomes suspended, all of these windows will display, as a highlight,
the currently executing part of the program (respectively, a stack frame, a
variable, a line of code, a stream element, and a scaled down stream element),
as seen in Figure 11. For the graph
windows, if the stream element to be highlighted was not visible before the
highlighting occurred, the graph would be expanded to show the stream element
(described in section 3.5) and the graph window scrolled to make the element
visible.
Figure 11:
A StreamIt program paused at a breakpoint.
The highlights in each of the
windows are “linked,” such that the user’s selection in one window will
propagate to the other windows. For
example, if the user selects a stack frame in the Debug window, the
corresponding variable in the Variable window and the corresponding stream
element in the graphs are highlighted, and vice versa. These features are intended to (1) show which
element is currently executing, (2) convey the correspondence between each of
the windows, and (3) offer another way for the user to navigate the StreamIt graph.
Representing highlights as a blue background with white letters is
externally consistent with other windows in the Eclipse platform (see the
implementation section below).
This
“linking” of the windows is also apparent in several other areas of the
tool. For example, like the Variable
window, the graph windows only have input when the program is running and the
names of the stream elements are the same names found in the Variable
window. The id information next to each
name corresponds to the ids in the Variable window. Ids are useful for programs that use the same
stream element multiple times, as these elements are indistinguishable
otherwise.