使用simulavr与AVR-GDB奇怪时抛出异常(Weird exception thrown w

2019-09-29 13:48发布

我调试,我已经为AVR架构使用编写和编译程序avr-gcc-g参数。

我启动simulavr使用下面的命令: simulavr --device atmega8 --gdbserver

然后我调用avr-gdb和做(gdb) file main.elf以及(gdb) target remote localhost:1212

一旦调试开始,我可以成功step通过我的节目的组件部分.init等。 然而,一旦jmp main执行和其他函数调用时, simulavr抛出以下异常: Assertion failed: (m_on_call_sp != 0x0000), function OnCall, file hwstack.cpp, line 266. Abort trap: 6

它是与框架推到堆栈,但我不能完全把我的关于如何解决它的手指。

Answer 1:

这堆值是应该的很远。 在你的程序的开始,应该是在RAM的结束,而不是在开头。

这很可能是一些问题simulavr您的设备不正确配置RAM。 快速查看的源代码显示,堆栈指针被设置为0,如果模拟器不能确定正确的值。

你编译时包括-mmcu = ATmega8的在命令行? 尝试添加-V切换到simulavr命令更多的线索。



文章来源: Weird exception thrown when using simulavr with avr-gdb