The work could be extended to take external events into account. The user will be required to specify the occurrence of events in a time table. The events are then simulated by the debugging environment based on the elapsed time. At program termination, the monitored activities (e.g. completion time, deadline) could be summarized in a table.
The interaction of the debugging environment with a compiler provides the means to introduce a compilation pragma zero_time which excludes a code portion from virtual time accounting. This can be used to insert conditionally compiled debugging code which does not affect the overall timing.
The work is also being extended to include the impact of data caching and pipeline stalls to improve the accuracy of the time estimates. Another application of this work is to design a detailed profiler which facilitates the search for code portions which consume most of the execution time.
Furthermore, this environment could also be used for multi-threaded
applications where a thread corresponds to a task. The application
could be designed for a non-preemptive embedded system
but may be debugged on a
regular workstation using the environment to simulate the embedded
system efficiently.