Keil调试局部变量显示"not in scope"的问题解决

2019-04-18来源: eefocus关键字:Keil调试  局部变量  not  in  scope

    今天在调试程序的时候,发现函数返回值赋值给变量时,变量值总是显示"not in scope",无法看到变量被赋的值。

    出现这种情况的原因是这个局部变量没被分配到内存,或者变量被编译器优化了。

    编译器优化级别高的时候,编译器为了优化,可能并没有按照我们想要执行的代码汇编。


    解决方法:降低Keil的编译优化选项,如下图所示,优化等级改为0(默认为3)。


关键字:Keil调试  局部变量  not  in  scope 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic459094.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:Keil精确测量代码运行时间
下一篇:Keil中RO-data、RW-data、ZI-data意义

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

关于keil调试不能下断点的问题解决
原因其实很简单,keil默认设置的优化等级太高了!需要更改下即可 改成0后,任何地方就都能下断点了对了,改完之后不要忘记编译,完了之后才生效
发表于 2019-05-11
关于keil调试不能下断点的问题解决
Keil调试程序如何查看变量
第一个问题:调试时候想实时查看某一变量变化?view 菜单下的 watch windows,全局变量才能查看点击打开链接比如要查看u8 adcx的值变化,如下:全速运行后,如下:无法查看!什么问题?该变量非全局变量!解决办法: 必须是当前断点处所在的函数里面有这个参数才行,或者是全局变量.点击打开链接将变量adcx改为全局变量:调试状态下,鼠标选中变量后点右键,弹出的菜单有增加到变量窗口一栏,添加到watch #1 watch #2都可以。点击打开链接第二个问题:Watch1窗口中变量adcx值不能实时显示?解决方法:调试状态下,勾上View->Periodic Window Update 点击打开链第三个问题
发表于 2018-12-15
Keil调试程序如何查看变量
Keil调试局部变量显示"not in scope"的问题解决
今天在调试程序的时候,发现函数返回值赋值给变量时,变量值总是显示"not in scope",无法看到变量被赋的值。出现这种情况的原因是这个局部变量没被分配到内存,或者变量被编译器优化了。编译器优化级别高的时候,编译器为了优化,可能并没有按照我们想要执行的代码汇编。解决方法:降低Keil的编译优化选项,如下图所示,优化等级改为0(默认为3)。
发表于 2018-12-12
Keil调试STM32中解析main开始前的工作
MPORT I2C2_EV_IRQHandler ;55IMPORT I2C2_ER_IRQHandler ;56IMPORT SPI1_IRQHandler ;57IMPORT SPI2_IRQHandler ;58IMPORT USART1_IRQHandler ;59IMPORT USART2_IRQHandler ;60IMPORT USART3_IRQHandler ;61IMPORT EXTI15_10_IRQHandler ;62IMPORT RTCAlarm_IRQHandler ;63IMPORT USBWakeUp_IRQHandler ;64IMPORT TIM8_BRK_IRQHandler ;65I
发表于 2018-12-12
使用keil调试stm32时不能run
在使用keil时其断点不能超过5个,如果超过5个断点将不能进入调试界面调试过程中打超过5个断点后,会出现报警信息或错误提示修正:之前根据经验说断点不能超过5个,现在修正一下;对于每个处理器不一样,在Cotex-M3 user Guide里有这么一句话也就是说Cotex-M3内核处理器最大同时支持8个硬件断点。对于Cotex-M0+ 内核有这么一句话这句话没有指出支持多少硬件断点,但是从stm32l01x参考手册里这里面说提供四个断点寄存器,是不是说最多支持四个断点呢?我们验证一下:这是打五个断点的时候在输出框找到也就是最多支持4个断点!
发表于 2018-11-30
使用keil调试stm32时不能run
【STM32F0】Keil 查看局部变量显示
现象: 在进行STM32F0开发的时候出现了,调试代码,添加变量Watch时,显示not in scope。处理方式: 因为代码开了优化的处理,把优化改到Level0,就可以解决问题。
发表于 2019-08-01
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved