文章目录
Trace32 SNOOPer 介绍
在 Lauterbach TRACE32 调试系统中,Snooper
是一种特殊的监视工具,它能够在不中断处理器执行的情况下监视和记录特定内存地址的数据变化。这对于系统级调试、性能分析、数据流监视以及实时系统的问题追踪特别有用,尤其是在无法使用中断的情况下。
当你设置了一个或多个 Snooper
时,TRACE32 硬件将不断地监视指定的内存地址,一旦发生了读写操作,就会将相关信息记录下来。这样你就可以看到某个地址的数据是什么时候以及如何被修改的,而不会影响目标系统的运行。
SNOOPer 主要功能:
- 实时监视:
Snooper
能够在实时操作系统中监视数据,而不会影响其实时性能。 - 数据记录:它可以记录访问特定内存地址的所有操作(读或写),并存储相关信息,如操作的时间戳、访问的数据以及产生访问的指令地址。
- 触发器设置:可以设置复杂的条件作为触发记录的事件,例如仅当数据达到特定值或特定的访问顺序发生时才进行记录。
- 多点监视:可以同时监视多个地址或地址区域。
- 数据分析:TRACE32 软件提供了数据分析工具,可以帮助你理解记录的数据并识别问题。
SNOOPer 使用场景
- Bug 定位:监视可能出现问题的变量或内存区域,以确定在何处以及何时数据出现异常。
- 性能分析:监视关键区域的访问频率,以评估系统性能或优化代码。
- 竞态条件检测:监视共享资源的访问,以帮助查找潜在的竞态条件。
- 数据完整性测试:确保系统中的关键数据在执行过程中维持正确的状态。
如果测量代码或者Task运行时间在ms级别,使用Snooper方式更简单、快捷。如果测量代码在us或者ns级别,使用示波器或者STM方式更合适。
SNOOPer.ERRORSTOP
Format: SNOOPer.ERRORSTOP [ON | OFF]
这个命令用于在采样出错时设置 SNOOPer 的处理方法,当执行SNOOPer.ERRORSTOP OFF
SNOOPer 将会继续采样在采样出错时。