Trace Visualization for Efficient Debugging of Embedded Systems is an excellent introduction into the world of software tracing, the importance of well-designed visualization of trace data, and how this technology can help you create better software.
Software tracing combined with powerful visualization allows for unprecedented insight. Improve productivity and quality in your software development, reduce project risks and time-to-market.
Source code alone does not give the full picture of how multitasking software systems actually behave in run-time. The real-time behavior also depend on many other factors, like the timing of your tasks and interrupts, their interactions and inputs. With a sophisticated tracing tool like Tracealyzer, you get much better insight into the run-time world of your system and accelerate your development, debugging and validation.
- Faster Troubleshooting
Tracealyzer allows for capturing rare, sporadic errors which otherwise can be very hard to reproduce and analyze. Many embedded software problems can be solved in a fraction of the time otherwise required. Tracealyzer recording can be used in parallel with existing debuggers in the lab, or deployed in field systems to capture rare sporadic errors.
- Better Software Quality
Tracealyzer is not only a “fire extinguisher” to use on specific hard problems. You can also discover and avoid potential future problems, such as blocking system calls that are close to a timeout. Moreover, Tracealyzer gives you a better understanding of the current system run-time dynamics, so when designing new features, you can avoid unsuitable designs that could cause problems related to timing, CPU usage, scheduling or other task interactions.
- Better Performance
The improved insight also allows you to find new ways of improving the embedded software performance. There might be “low hanging fruits”, where small changes in task timing may give substantial performance improvements. Tracealyzer provides several ways of finding “hot-spots” where tasks are delayed by higher prioritized tasks, that possibly could run a bit earlier or later to reduce resource conflicts. Without suitable visualization, such optimizations are very hard to find. This way, you can get a more responsive software system, or fit more software functionality in the same hardware platform.
- Control system tuning
Control system developers can benefit from the support for plotting custom application data, what we call user events. Plots of e.g. control signals (sensor inputs and actuator outputs) can be correlated with the software timing in order to better understand anomalies in the control performance. Moreover, plots of task timing (e.g., periodicity) can be used to study software timing variations that affects control performance.
- Other benefits
The improved level of insight also allows for faster introduction of new developers and better possibilities to evaluate the performance of new third party software, such as embedded databases, touch screen drivers or communication stacks. Finally, since we support several common operating systems for embedded software, you can often keep the Tracealyzer support even if switching to another operating system.