找回密码
 立即注册
楼主: men007

IAR入门指南之调试

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 07:49:59 | 显示全部楼层
使用代码覆盖:
1    使用以下这些选项来构建你的应用:


2    构建你的应用并启动C-SPY。

截图202504140752055431.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 07:54:03 | 显示全部楼层
1   选择 View>Code Coverage 打开代码覆盖窗口。
2    单击 Activate
截图202504140755013494.jpg
    按钮开启代码覆盖分析。


   5 开始执行。 当执行
停止的时候,例如 因为程序到达退出
点或触发了断点,单击 Refresh 按钮来查看代码覆盖信息。
代码覆盖窗口现在报告当前代码覆盖分析的状态,也就是, 代码的哪部分从开始分析起执行了至少一次。编译器以在每条语句和每个函数调用上的节点的形式生成详细的步骤信息。报告包括所有模块和函数的有关信息,直到应用停止执行时的全部节点的数量,按百分比, 列出执行的以及所有没有执行的节点。
6  覆盖会持续不断,直到关闭时才停止。
注意:  代码覆盖还可以在反汇编窗口显示。执行的代码用绿色方块标识。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 07:56:15 | 显示全部楼层
堆栈使用
堆栈窗口显示堆栈的内容,包括堆栈变量在内存中如何布置。另外, 一些堆栈的完整性检查可以用来发现堆栈溢出问题并报警。
       堆栈窗口展示了堆栈的内容。有助于以下时刻:
●    探究 C 模块调用汇编模块或反之时堆栈的使用。
●   探究要素是否正确地放置在堆栈中。
●   探究堆栈恢复是否正确。
追踪堆栈使用:
1   选择 Project>Options>Debugger>Plugins 并在插件列表中选择 Stack
2   选择 Tools>Options>Stack 配置堆栈追踪。 请特别注意,你可能要指明堆栈指针什么时候是有效的。
3    构建你的应用并启动C-SPY。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 07:57:34 | 显示全部楼层
1  4 选择 View>Stack



你可以打开多个堆栈窗口的实例,每个都显示不同的堆栈—如果几个堆栈都可用—或者不同显示设置的同一个堆栈。

截图202504140759458425.jpg
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 08:05:33 | 显示全部楼层
不太会使用网页编辑,所以出现图片重复情况,请各位看官多多谅解。到时候我再整理一个PDF版的给各位。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 08:06:33 | 显示全部楼层
将鼠标指针放在堆栈条的上方就可以获取堆栈用法的工具提示信息。
侦测堆栈溢出:
选择 Tools>Options>Stack 并选择选项  Enable stack checks
这意味着当应用停止执行的时候C-SPY可以发出堆栈溢出警告。要么堆栈使用超出你指定的阈值, 要么堆栈指针超出堆栈存储区之外时都会发出警告。
追踪
通过收集追踪数据,你可以分析程序流到的特定状态(例如一个应用崩溃), 并使用该追踪数据定位问题的源头。追踪数据有助于定位程序症状不规则并偶尔发生的错误。
追踪 是执行机器指令的一个序列集合。可用的追踪数据很大程度上取决于你使用的C-SPY 驱动:
●    C-SPY仿真器收集你在追踪表达式窗口选择的C-SPY表达式的值。函数追踪窗口只显示相应的调用函数和函数返回的追踪数据,然而追踪窗口显示全部指令。
●    如果你使用的硬件支持的话,C-SPY硬件调试系统的驱动可以收集追踪数据。例如如果有专用的通信通道或者专用的追踪缓冲区供追踪收集。在这种情况下, 追踪窗口会反映收集到的数据。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 08:07:23 | 显示全部楼层
收集追踪数据:
1   在仿真器中收集追踪数据不需要专门的构建设置。如果你正在使用硬件调试系统,则必须提前配置其追踪数据的产生。相关信息参考驱动的文档。
2   构建你的应用并启动C-SPY。
3   在驱动专用菜单选择 Trace 打开追踪窗口, 然后单击Activate 按钮开启追踪数据收集。
4   开始执行。当执行停止的时候,例如因为触发了断点, 追踪数据显示在追踪窗口中。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:405
  • 最近打卡:2025-06-29 07:29:27

7

主题

289

回帖

1451

积分

金牌会员

积分
1451
发表于 2025-4-14 08:08:55 | 显示全部楼层
利用断点开始追踪数据收集:
收集两个执行点之间的追踪数据的一种便利的做法是使用专用的断点起停数据采集。在编辑器或反汇编窗口中的上下文菜单上,右键单击来切换Trace Start Trace Stop 断点。在 C-SPY 仿真器中, 也可以使用 C-SPY 系统宏 __setTraceStartBreak和 __setTraceStopBreak。

回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-30 05:36 , Processed in 0.135149 second(s), 84 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表