只有深入的了解整个软件系统的实际行为,才能开发出更高质量的产品。 源码的预期行为和实际运行行为可能不同,这些区别无法在源码中显现,并且难以通过功能测试检测到。当应用程序变得越来越复杂,特别是基于RTOS或者Linux内核开发多线程嵌入式软件时,如何分析系统的运行时行为对开发人员来说是一个日益严峻的挑战。 我们可以通过可视化跟踪工具了解应用系统的实时行为,进而加快开发速度和提高产品质量。
Tracealyzer是一款用于RTOS或linux嵌入式软件系统的可视化跟踪工具,对系统运行时的行为提供了前所未有的洞察方法。帮助开发人员加快固件的开发,减少对系统验证和性能优化所需要的时间。
优势如下: 1、可视化执行时间顺序 多线程系统运行过程中检测到的问题通常难以解决。幸运的是,通过调试过程中获得的洞察力可以减少对于问题的猜测,更容易找到引起问题的根本原因,从而能够正确的修复问题,并且减少问题调试所耗费的时间。当问题所在的位置难以从问题表面现象发现时,或者问题难以进行复现,以及传统的需暂停程序执行的调试工具无法使用时,可视化的观察程序执行的时间顺序非常重要。 使用printf语句进行调试呢?在应用程序中添加调试打印的做法存在风险和侵入性,不适合扩展到更复杂的应用程序和快速的处理器。Printf函数并不是为程序调试所设计的,通常运行速度很慢,打印每条消息需要几毫秒。相比之下,可视化跟踪诊断依赖于优化的软件跟踪解决方案,并且比printf函数调用快了近100倍。因此可以收集很多的信息而不会对应用产生明显影响,此外,数据可视化技术使软件跟踪转化为可视化的视图变得更容易。 2、跟踪系统测试来发现诡异的问题 连续的实时跟踪数据使开发人员可以长时间记录和可视化该软件的完整图景,以捕获难以复现和调试的诡异软件问题。捕获跟踪记录中的所有故障,并找出引起这些故障的原因。或者找出经过数小时压力测试后系统崩溃的原因。Tracealyzer的可视化跟踪诊断功能使你能够查看运行时系统的实时跟踪视图,通过概述和统计信息发现系统异常,跟踪到具体事件来了解应用中发生了什么。 3、改进软件设计来获得更好的产品和降低成本 部分开发项目会坠入“调试地狱”,这是一种常见的情况,大量的调试工作会阻碍该项目的进展。在软件设计和RTOS应用程序开发中偏离最佳实践通常是主要的问题原因。部分例子包含不合适的任务优先级,软件时序上存在巨大变化或者任务之间过多的依赖性,这些问题可能导致复杂和混乱的系统行为,并且这些行为的可测试性很差,这增加了将这些诡异的错误引入到生产设备中的风险。 可视化跟踪诊断工具可以帮助开发人员分析和改进软件设计,确保系统行为的稳定和可靠。软件设计缺陷发现的越早,则修复这个缺陷所需做的更改就越少,并且能够减少交付产品中出现错误的风险。软件设计的改进还可以显著提高系统性能和响应能力,从而允许选择更低成本的处理器来降低成本,或者使用较低的时钟频率来延长电池的寿命。 4、持续验证整个项目的时间和产品性能 尽可能早的测量时间和性能指标,以便在交付之前解决所有的问题。实时系统应用程序具有明确的时间要求,这对于应用程序的用户体验非常重要。没有人喜欢迟钝的触摸屏界面或者慢速的WiFi路由器,但往往这些问题的原因在源码中并不明显,如果问题的原因是软件设计,那么即便更换更快的处理器也不会有多大帮助。 可视化跟踪诊断能够很容易的显示异常的原因,并测量软件的时序属性,内存使用情况和CPU负载。这使得应用程序能够更好得符合实时性要求,并具有更好的性能和客户满意度,这些都是可视化跟踪诊断带来的一些好处。 5、轻松获取诊断信息并每天受益 可视化跟踪诊断工具不依赖于额外的硬件,仅需集成相应跟踪软件到现有的硬件应用中即可实现。可以在软件系统中默认的包含它,这样开发人员在整个开发、测试和发布过程中都可以使用到它。遇到问题时,跟踪诊断能够随时提供相应信息,所有的开发人员都可以从中受益。记录与应用程序相关的所有信息,包括运行时未直接显现的内部数据和状态,查看所需的数据视图,结合可视化的时间线视图,开发人员能够制作出优秀产品。
|