当前位置: 首页 > news >正文

IAR软件中变量监控的几种方法

在IAR软件中可以使用多个方法来监控变量值的,下面就依次演示这几种方法

使用watch窗口监控

在这里插入图片描述
分别选中变量i和j,单击鼠标右键选择 add to watch

在这里插入图片描述在这里插入图片描述

添加完成之后在watch 1窗口就可以看见添加之后的这两个变量
在这里插入图片描述
全速运行代码,代码在断点处停止之后,就可以看到变量的值发生了改变。
在这里插入图片描述

使用局部变量窗口监控

由于变量i和j都是main函数中的局部变量,可以直接使用局部变量窗口进行观察。
在菜单栏中选择 view — Locals
在这里插入图片描述

全速运行代码,在断点处停止之后,观察locals窗口中的变量值。

在这里插入图片描述

使用live watch窗口监控

添加两个全局变量m,n

在这里插入图片描述
在while循环中也改变m、n
在这里插入图片描述
进入调试界面在变量m、n、i、j上分别右键选择add to live watch

在这里插入图片描述
在这里插入图片描述
然后全速运行代码
在这里插入图片描述

在live watch窗口中可以看到m和n的值实时改变,i和j的值看不到,因为变量i、j为局部变量,变量m、n为全局变量,只有全部变量在全速运行时在live watch窗口中可以实时观察到。

Live watch 可以用来观察动态值变化, watch只能观察静态值的变化。使用live watch 观察变量时代码不需要打断点暂停,全速运行下也能观察到变量值。Watch 观察变量时必须要打断点使程序暂停下来才行。

如果局部变量在全速运行的时候也想观察值的话,可以将局部变量声明为静态变量。在int前面添加 static 关键字
在这里插入图片描述
全速运行代码
在这里插入图片描述
此时在live watch窗口中也可以看到局部变量 i 和 j的值了。

通过prntf()函数打印变量值

在代码中添加头文件 #include <stdio.h>

在这里插入图片描述
在需要输出变量的位置使用printf()函数打印变量。
在这里插入图片描述
进入调试界面,在工具栏中选择view — Terminal I/O
在这里插入图片描述

全速运行代码,此时在Terminal I/O 窗口中就会显示变量的打印结果
在这里插入图片描述

通过调试窗口打印变量值

光标定位到n+=3这一行,然后单击鼠标右键,选择Toggle Breakpoint (Log)

在这里插入图片描述
这时候行号前面就会出现一个红色的小时钟图标

在这里插入图片描述
然后再次单击鼠标右键选择Edit Breakpoint…
在这里插入图片描述
在这个窗口中填写变量输出信息 “n=”,n:%d,选中上方的方框,然后点击确定按钮。

在这里插入图片描述

接下来全速运行代码,此时在调试窗口中就可以看到输出的变量值。

在这里插入图片描述
这里要注意一点,按照程序的执行流程看,n的第一个值应该为3,但是这里打印的值是从0开始的,说明显示的值延时了一次,如果需要实时显示,需要在变量的下一行进行监控。

将log监控点放在延时函数这一行
在这里插入图片描述
重新设置打印信息 " n=“,n:%d,” m=“,m:%d,” j=“,j:%d,” i=",i:%d 将四个变量全部打印出来

在这里插入图片描述
全速运行代码
在这里插入图片描述

这次n的值是从3开始打印的

如果想要保存输出变量的值,可以直接将打印信息输出到文件中。
进入调试界面后,在打印信息窗口单击鼠标右键选择 live log to file — choose live log file
在这里插入图片描述
在弹出的界面中选择需要输出log信息的文件夹,填写需要保存的文件名
在这里插入图片描述
设置完成之后,全速运行代码。
在这里插入图片描述
运行完成之后打开log文件
在这里插入图片描述
这个只需要设置一次,这次调试结束之后,下次再次调试时,log信息依然会写入这个文件中。
在这里插入图片描述

http://www.dtcms.com/a/316558.html

相关文章:

  • 如何在 FastAPI 中优雅处理后台任务异常并实现智能重试?
  • Wireshark安装过程 Npcap Setup: Failed to create the npcap service: 0x8007007e.
  • 信息系统项目管理中的沟通管理实战精解
  • 智慧能源场景设备缺陷漏检率↓76%:陌讯多模态融合检测方案实战解析
  • SpringCloud学习------Gateway详解
  • Claude Code 完整指南:入门到应用
  • Qt事件系统学习笔记
  • 嵌入式软件架构设计之七:双机通信及通信协议之字符串协议
  • 大语言模型安全攻防:从提示词注入到模型窃取的全面防御浅谈
  • 与功能包相关的指令ros2 pkg
  • 女性成长赛道:现状与发展趋势|创客匠人
  • NumPy 中的取整函数
  • 如何在Android设备上删除多个联系人(3种方法)
  • Java项目:基于SSM框架实现的公益网站管理系统【ssm+B/S架构+源码+数据库+毕业论文+答辩PPT+远程部署】
  • 解锁高效敏捷:2025年Scrum项目管理工具的核心应用解析
  • 智慧社区物业管理平台登录流程全解析:从验证码到JWT认证
  • 关于熵减 - 双线线圈
  • 前端性能测试:从工具到实战全解析
  • 类内部方法调用,自注入避免AOP失效
  • Flutter 国际化
  • OpenSpeedy绿色免费版下载,提升下载速度,网盘下载速度等游戏变速工具
  • spring boot 加载失败 异常没有曝漏出来
  • 基于Java AI(人工智能)生成末日题材的实践
  • 2. JS 有哪些数据类型
  • 【网络运维】Linux:系统启动原理与配置
  • 虚幻GAS底层原理解剖一(开篇)
  • ⭐CVPR2025 用于个性化图像生成的 TFCustom 框架
  • python可视化--Seaborn图形绘制方法和技巧,Bokeh图形绘制方法和技巧
  • 虚幻GAS底层原理解剖二 (GE)
  • 安全策略一体化落地指南:从定义到执行的闭环架构