A final issue to be considered here is the debugging of TOOLBUS-based
applications. We have to deal with concurrent and distributed
execution, and components that may have been implemented in different
languages. The problem here is how to provide a uniform debugging
framework while still reusing native debuggers for language-specific
debugging. Olivier (1997) describes the TOOLBUS Integrated
Debugging Environment (TIDE) that is based on an abstract,
event-driven, model for debugging. Typical events are calling a
procedure and reaching or setting a break point. A source-code viewer
and a variable inspector are examples of available generic tools that
are based on this abstract debugging model. For each language
that is used for the implementation of a component, the abstract
events can be implemented by the native
debugger. In this
manner, a unified debugging view can be provided for all components
while still relying on existing debuggers. TIDE itself has also been
implemented as a component-based system and uses the TOOLBUS for
coordination.