【发布时间】:2012-05-07 08:35:21
【问题描述】:
我有以下代码:
void setup()
{
address_t sp, pc;
sp = (address_t)stack1 + STACK_SIZE - sizeof(address_t);
pc = (address_t)f;
sigsetjmp(jbuf[0],1);
(jbuf[0]->__jmpbuf)[JB_SP] = translate_address(sp);<----ERROR
(jbuf[0]->__jmpbuf)[JB_PC] = translate_address(pc);<----ERROR
sigemptyset(&jbuf[0]->__saved_mask);<----ERROR
sp = (address_t)stack2 + STACK_SIZE - sizeof(address_t);
pc = (address_t)g;
sigsetjmp(jbuf[1],1);
(jbuf[1]->__jmpbuf)[JB_SP] = translate_address(sp);<----ERROR
(jbuf[1]->__jmpbuf)[JB_PC] = translate_address(pc);<----ERROR
sigemptyset(&jbuf[1]->__saved_mask);<----ERROR
}
知道这个错误是什么意思吗?
【问题讨论】:
-
如果您认为像这样弄乱堆栈指针 (SP) 或程序计数器 (PC) 是安全和/或可移植的,那么您需要再考虑一下。
-
这篇文章似乎相关:stackoverflow.com/questions/6683451