Tag: cconcontext

使用getcontext / setcontext切换堆栈

我试图了解getcontext / setcontext是否可以在特定方案中正常工作。 我可以看到如何使用setcontext()将堆栈展开回历史记录中的某个位置。 #include #include int rollback = 0; ucontext_t context; void func(void) { setcontext(cp); } int main(void) { getcontext(&context); if (rollback == 0) { printf(“getcontext has been called\n”); rollback++; func(); } else { printf(“setcontext has been called\n”); } } 但是我想知道在放松之后你是否可以重新回到未来的某个地方? 我想这取决于getcontext()调用捕获堆栈的副本,​​我无法在文档中找到确切的详细信息。 #include #include int rollback = 0; int backToFuture = 0; ucontext_t context; […]