J-Trace PRO流式跟踪调试器
来源: | 作者:风标电子工程师 | 发布时间: 2024-04-17 | 3 次浏览 | 🔊 点击朗读正文 ❚❚ | 分享到:

J-Trace PRO流式跟踪调试器




随着嵌入式系统变得越来越复杂,对高级调试工具的要求也随之增长。跟踪技术能够让我们深入了解目标系统上的实时活动,从而有效地定位和修复错误。目标CPU内置的特殊跟踪组件(如ARM架构中的ETM)能够记录下CPU执行的所有指令及其它关键信息,如条件指令的执行情况、分支指令的目标地址等。这些信息被传递给跟踪调试器,以便重建CPU的完整执行流程。

要注意的是,要使用本文提到的跟踪功能,目标CPU必须具备相应的硬件支持。有关支持跟踪的目标设备列表,可以参考相关文档Tested Devices - J-Trace PRO (segger.com)。并且,流式跟踪功能需要J-Trace PRO调试器,而不能使用J-Link调试器

J-Trace PRO介绍


SEGGER的J-Trace PRO能够无限制地捕捉长时间的完整指令进行跟踪,不受跟踪数据量的约束——这使得记录那些难以重现的罕见故障成为可能。特别是当程序运行时偏离正常轨迹并陷入故障状态时,这一点尤为关键。这为开发人员提供了深入理解和优化代码所需的所有信息。

J-Trace PRO具有无限制的实时代码覆盖率分析(让工程师能够清楚地看到应用程序代码的哪些部分已经被执行)和实时代码性能分析(提供对哪些指令被执行以及执行频率的洞察,以便定位性能瓶颈并发现优化空间)等功能。

J-Trace PRO支持多平台使用(Windows、macOS、Linux),具有高达4 MB/s的下载速度,并内置以太网接口。它包含了所有功能的完整支持,如无限Flash断点以及与Ozone调试器进行实时分析。

回溯功能


回溯功能利用指令跟踪信息,在特定点(如遇到断点时)尽可能重建之前的指令流。例如,在源代码中设置断点后,当程序运行至该点时,调试器可以借助J-Trace提供的跟踪数据,重现触发断点前执行的所有指令。这对于追踪复杂问题,如中断相关的问题,尤为有效。这类问题往往难以通过传统的调试方法(如单步执行、printf调试等)发现,因为它们可能会改变程序的真实运行行为,导致问题隐藏不见。

通过trace引脚进行流式跟踪


通过trace引脚进行流式跟踪是最常见的方法。目标CPU在特定引脚上输出跟踪数据和时钟信号,J-Trace对这些引脚进行采样并收集数据。由于跟踪数据以高频率输出(在现代嵌入式系统中通常>=100 MHz),因此需要高端硬件,如J-Trace PRO,来处理这些数据。

实时代码覆盖率分析


实时代码覆盖率分析是一种衡量代码“质量”的方法,它展示了在测试过程中执行了多少代码。实时代码覆盖率分析能够测量代码的执行情况,并显示源代码行、块、函数或文件的执行情况。这有助于发现测试未覆盖的代码或潜在无法访问的代码,从而为改进代码或为未覆盖部分创建适当的测试用例提供高效的途径。


实时代码性能分析


实时代码性能分析是一种测量函数、块或指令的执行时间和执行次数的方法。它可以用作评估系统复杂性的工具,并突出显示系统在哪些部分花费了较多的计算时间。这对于识别频繁执行的代码至关重要,因为这些代码可能是系统负担的来源。代码性能分析信息有助于优化系统,因为它准确地指出了哪些部分最值得优化。