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信息依然会写入这个文件中。