调用堆栈窗口不显示本地值

问题描述 投票:0回答:2

我正在运行调试会话。

我在第 201 行的函数

services_init
中设置了一个断点。

我运行了

run up to break point
命令

enter image description here

处理器如预期在第 201 行暂停。但是,堆栈窗口仅显示

main
函数的局部变量。

为什么我看不到

services_init
的局部变量?

enter image description here

keil nrf51
2个回答
0
投票

来自 Nordic 的开发者解决了我的问题

嗨,

尝试进入项目设置 -> C/C++ 选项卡,然后设置优化 级别为-O0。然后重新编译并再次刷新固件。什么时候 为了实现更高的优化,编译器会在您的代码中查找模式 所有的代码,将相似的部分压缩在一起,结果 不像您的源代码那样精简。这就是为什么 高度优化的调试可能会出现不一致的“跳转” 代码,调用堆栈可能无法正确显示所有变量。

干杯,哈康


0
投票

尝试使用静态存储类声明相同的变量。 静态无符号整型错误代码; 这在 Keil v4 中有效

© www.soinside.com 2019 - 2024. All rights reserved.