jjzjj

swapcontext

全部标签

c - 使用 gdb 进入 swapcontext()

我正在做一个进行unix系统调用的项目。具体而言,我的项目严重依赖对getcontext()、makecontext()、swapcontext()和setcontext()的调用。我尝试使用gdb调试我的代码。我逐行进入代码并检查控件,但是一旦调用swapcontext(),它就不再进入代码。相反,调试几乎就此停止,程序的其余部分将自动运行,而不是逐行运行。我猜gdb不会进入上下文调用?有什么办法可以解决这个问题吗?有没有我可以使用的调试器?谢谢 最佳答案 setcontext和swapcontext调用改变了程序的堆栈,gdb变

c - 使用 gdb 进入 swapcontext()

我正在做一个进行unix系统调用的项目。具体而言,我的项目严重依赖对getcontext()、makecontext()、swapcontext()和setcontext()的调用。我尝试使用gdb调试我的代码。我逐行进入代码并检查控件,但是一旦调用swapcontext(),它就不再进入代码。相反,调试几乎就此停止,程序的其余部分将自动运行,而不是逐行运行。我猜gdb不会进入上下文调用?有什么办法可以解决这个问题吗?有没有我可以使用的调试器?谢谢 最佳答案 setcontext和swapcontext调用改变了程序的堆栈,gdb变

c++ - makecontext()/swapcontext() 函数是否与 C++ 兼容

在unix环境中,makecontext()/swapcontext()函数系列有时用于在C中实现协程。然而,这些函数直接操作堆栈和执行流。当从C切换到C++时,这些低级功能通常有很大不同。所以问题是,使用makecontext()和swapcontext()实现协程是否会有任何问题。当然,显然必须非常小心,异常永远无法逃脱这样的协程,因为堆栈上没有异常处理程序,程序很可能会出现段错误。但除此之外,C++内部处理事物的方式与makecontext()和setcontext()修改执行路径之间是否存在任何不兼容? 最佳答案 我之前在C