TRACE32——Break

TRACE32——Break

Break 是TRACE32中使用频率非常高的一组命令,主要包含以下几个功能:

  1. 控制CPU的暂停 (Break)
  2. 设置各种断点 (Break.Set)
  3. 设置跟踪数据的过滤条件 (使用Break.Set配合相应选项, 例如**/TraceOn /TraceData等**)
  4. 编写CTL,实现复杂触发断点的编程 (Break.Program)

Break命令控制CPU的暂停

这是Break命令最常用的功能,当CPU/内核处于running状态时:

图片

如果需要停下CPU,可以执行命令:

Break.direct//命令等同于如下简写:Break//或者b

也可以在TRACE32界面中点击暂停按钮:

图片

或者使用键盘快捷键F8:

图片

如果CPU/内核能够成功响应调试器的暂停请求,TRACE32右下角会出现stopped字样。此时便可以查看当前代码运行位置、内存以及寄存器等资源。

图片

如果发现无法停住CPU,TRACE32会提示"emulation running"等字样:

图片

图片

原因一般是CPU/内核处于安全、异常、复位、休眠等状态下,无法响应外部调试器的暂停请求,具体分析方法可参考如下链接:

Break command returns “emulation running”

有时,当调试CPU中的从核时,由于从核需要主核运行相应的代码来解复位/初始化/激活/唤醒从核。这时我们可以使用命令:

Break.request

给从核发送停止请求,但并不要求从核立即停住。从核在被初始化/唤醒后,会响应停止请求并停住。该命令适用于调试从核的前期代码。

Break.Set设置断点

断点功能可以参考:

  • <T32安装目录>\pdf\training_debugger.pdf
  • https://www2.lauterbach.com/pdf/training_debugger.pdf

Break.Set设置跟踪数据的过滤条件

使用TRACE32 的 On-chip/Off-chip 跟踪时,如果需要对跟踪数据进行过滤,可以使用Break.Set 配合相关选项来进行设置:

/TraceEnable
/TraceOn
/TraceOFF
/TraceData

不同芯片采用不同的跟踪方案,可以在TRACE32安装目录的pdf文件夹中根据对应的芯片架构找到相应的文档:

  • ARM Cortex-A/R ETM:

    training_arm_etm.pdf

  • ARM Cortex-M ETM:

    training_cortexm_etm.pdf

  • AURIX Trace:

    training_aurix_trace.pdf

  • NEXUS Trace :

    training_nexus.pdf

Break.Program实现复杂断点的编程

TRACE32新功能CTL(Complex Trigger Language), 可以使用Break.Program 命令进行复杂断点的编程,可以实现跟芯片时间、性能相关的高级断点功能。

例如,当中断被禁用100ms后,对CPU进行暂停:

图片

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值