我正在使用基于frame pointer
和stack pointer
的堆栈的嵌入式设备。为了识别无效的浮点运算,我设置了floating-point invalid operation
中断。
不幸的是,一旦进入中断状态,我就不知道异常发生的地方。幸运的是,我可以访问程序的堆栈内存。
我最初认为我只需要将最后一个帧指针减去1以获得返回值,该值为true。但是,我得到的地址是来自执行上下文切换的中断调度程序的地址。
我要找的是前一个返回地址最近两帧之前。
问题是,我不知道每帧的大小。我可以使用什么解决方案解决我的问题并在中断之前获取程序计数器的地址?