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

Keil “调用堆栈”窗口不显示本地值,keil,nrf51,Keil,Nrf51,我正在运行调试会话 我在第201行的函数services\u init中设置了一个断点 我运行了运行到断点的命令 处理器按预期在第201行暂停。但是,“堆栈”窗口仅显示main函数的本地变量 为什么我看不到服务\u init的本地变量 一位来自北欧的开发者解决了我的问题 嗨 尝试进入项目设置->C/C++选项卡,并设置优化 级别为-O0。然后重新编译并刷新固件。什么时候 启用更高的优化,编译器将在 您的所有代码,将相似的部分压缩在一起,并得到结果 没有您的源代码那么精简。这就是原因 使用高度优

我正在运行调试会话

我在第201行的函数
services\u init
中设置了一个断点

我运行了
运行到断点的
命令

处理器按预期在第201行暂停。但是,“堆栈”窗口仅显示
main
函数的本地变量

为什么我看不到
服务\u init
的本地变量


一位来自北欧的开发者解决了我的问题

尝试进入项目设置->C/C++选项卡,并设置优化 级别为-O0。然后重新编译并刷新固件。什么时候 启用更高的优化,编译器将在 您的所有代码,将相似的部分压缩在一起,并得到结果 没有您的源代码那么精简。这就是原因 使用高度优化进行调试可能会导致不一致的“跳跃” 代码,调用堆栈可能无法正确显示所有变量

干杯,Håkon