avr gcc:找不到任何调用堆栈帧的符号

avr gcc:找不到任何调用堆栈帧的符号,c,debugging,optimization,linker,avr-gcc,C,Debugging,Optimization,Linker,Avr Gcc,我用Atmel Studio 6开发了一个GCC C可执行项目。目标设备是ATtiny2313A。有一个C文件和其他头文件 当我设置大小优化时,我无法调试解决方案,因为当我进入头文件中包含的函数时,调试器会显示错误“无可用源”。没有找到任何调用堆栈帧的符号。无法显示源代码 调试器可以与所有其他优化类型(O1、-O2、-O3)配合使用 此外,该软件在实际芯片上工作 我需要知道我的代码的时间,但我也需要节省闪存空间,因此我无法避免调试优化大小的代码 似乎问题在于链接器无法链接代码的不同部分,因为缺少

我用Atmel Studio 6开发了一个GCC C可执行项目。目标设备是ATtiny2313A。有一个C文件和其他头文件

当我设置大小优化时,我无法调试解决方案,因为当我进入头文件中包含的函数时,调试器会显示错误“无可用源”。没有找到任何调用堆栈帧的符号。无法显示源代码

调试器可以与所有其他优化类型(O1、-O2、-O3)配合使用

此外,该软件在实际芯片上工作

我需要知道我的代码的时间,但我也需要节省闪存空间,因此我无法避免调试优化大小的代码

似乎问题在于链接器无法链接代码的不同部分,因为缺少一些符号。
我怎样才能使它使用所有必要的符号

确保您使用的是gdwarf2对象文件格式。我遇到了一个类似的问题,即编译后的代码没有正确链接回源代码。

不确定-Os是否会覆盖它,但您可以尝试将-fno省略帧指针添加到编译标志。