我正在运行调试会话。
我在第 201 行的函数
services_init
中设置了一个断点。
我运行了
run up to break point
命令
处理器如预期在第 201 行暂停。但是,堆栈窗口仅显示
main
函数的局部变量。
为什么我看不到
services_init
的局部变量?
来自 Nordic 的开发者解决了我的问题
嗨,
尝试进入项目设置 -> C/C++ 选项卡,然后设置优化 级别为-O0。然后重新编译并再次刷新固件。什么时候 为了实现更高的优化,编译器会在您的代码中查找模式 所有的代码,将相似的部分压缩在一起,结果 不像您的源代码那样精简。这就是为什么 高度优化的调试可能会出现不一致的“跳转” 代码,调用堆栈可能无法正确显示所有变量。
干杯,哈康
尝试使用静态存储类声明相同的变量。 静态无符号整型错误代码; 这在 Keil v4 中有效