首页 理论教育 如何观察可视范围之外的变量?

如何观察可视范围之外的变量?

时间:2023-06-20 理论教育 版权反馈
【摘要】:上面已经提到,使用Watch窗口可以观察变量并改变变量的值。由于该行不是一个有效行,因此CCS自动将断点设在下一个有效行。程序将运行到dataIO函数结尾处的断点时停止运行。6)在Watchl窗口输入*input,指示变量为一个未知的标识符,这是因为*input在dataIO函数中没有定义。如果读者更改sine.dat文件,则其值可能改变。图6-49 单击Call Stack窗口main()查看Watch窗口8)单击Call Stack窗口的最后一行“_args_main()”,如图6-50所示,可见gain为一个全局变量,但*input不是。

如何观察可视范围之外的变量?

上面已经提到,使用Watch窗口可以观察变量并改变变量的值。但当要查看的变量的作用域不在当前设置的断点范围内时,则可使用访问堆栈(Call Stack)命令来查看。

1)在CCS主界面的菜单栏中选择Debug→Halt命令或单击调试工具栏上的Halt按钮978-7-111-35536-6-Chapter06-138.jpg或按〈Shift+F5〉组合键,中断程序运行。

2)查看volume.c程序文件的源代码,注意到*input在main和processing两函数中定义,在dataIO函数中没有定义。

3)将光标放在dataIO函数中return行。

4)单击工程工具栏上的Debug:Toggle Breakpoint按钮978-7-111-35536-6-Chapter06-139.jpg、或按〈F9〉键、或双击源程序编辑窗口该行的左侧灰色部分设置断点。由于该行不是一个有效行,因此CCS自动将断点设在下一个有效行。

5)按〈F5〉键或单击调试工具栏上的Run按钮978-7-111-35536-6-Chapter06-140.jpg运行程序。程序将运行到dataIO函数结尾处的断点时停止运行。

6)在Watchl窗口输入*input,指示变量为一个未知的标识符,这是因为*input在dataIO函数中没有定义。

7)在菜单栏中选择View→Call Stack命令,将在Watch窗口左侧看到Call Stack窗口。在CallStack窗口单击main(),观察到*input在main函数的值为0,如图6-49所示。如果读者更改sine.dat文件,则其值可能改变。(www.xing528.com)

978-7-111-35536-6-Chapter06-141.jpg

图6-49 单击Call Stack窗口main()查看Watch窗口

8)单击Call Stack窗口的最后一行“_args_main()”,如图6-50所示,可见gain为一个全局变量,但*input不是。

978-7-111-35536-6-Chapter06-142.jpg

图6-50 单击Call Stack窗口最后一行查看Watch窗口

9)在Call Stack窗口中单击鼠标右键,在弹出菜单中选择Hide命令。

10)移去第4步中设置的断点(将光标放在datalO函数中return行后,单击工程工具栏按钮978-7-111-35536-6-Chapter06-143.jpg或按〈F9〉键)。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈