WindView 2.0 provides a flexible environment for real-time application analysis. The functional elements of WindView are modular; they can potentially be customized or even replaced by user-defined functionality. WindView adds components to Tornado on both the target and the host. On the target side, instrumentation points, the dynamic ring buffer, event logging, timestamping, data upload, and triggering can all be separately configured. On the host, the event-base can be customized, information can be analyzed and displayed in real-time or saved for later processing, and WindView or other tools can be used for analysis and display.
An important aspect of WindView's modularity is the ability to customize the event set understood by WindView at runtime. To accomplish this, the basic VxWorks events are gathered into a human-readable file (indicated by the extension .e). This file can be extended with new components, such as the events required to instrument new libraries. Further, it is possible to replace the VxWorks .e file with one set up for other operating systems (for example, WiSP or I2O). The initial segment of an event-base specifies the DLL to be loaded. Each DLL is responsible for locating and loading the corresponding .e file, which in turn is responsible for locating and loading the various extension files that correspond to the various components.
On the target, events are recorded in the WindView ring buffer as they occur. All requested events are logged, whether they are generated in system tasks 1 or in application tasks. The WindView event manager (tWVUpload) transfers the data in the WindView buffers to the host as the user specifies. This may occur whenever the upload threshold is reached or when requested by the host tool.
The second portion of WindView resides on the host as part of the Tornado host-resident tools. It accepts event data from the target, displays the event data, and sends target control requests (such as requests to start event logging) to the target.
Figure A-1 shows how the various parts of WindView on the host and the target interact. Note that in the case of the integrated WindView which works with the simulator, all the elements that appear in the target block in Figure A-1 actually exist in a simulator block on the Tornado host.
1: System tasks include the WindView task (tWVUpload), the Tornado target-agent task tWdbTask, the VxWorks exception task, and so on.