由于某种原因,我切换堆栈以调用应用程序中的某些function。 为此,我使用了makecontext / getcontext / swapcontext 。 不过,我觉得这太慢了。 我试图使用自定义的代码来保存堆栈指针和其他寄存器,然后将堆栈指针指向我想用作堆栈的新内存的值。 但是,我不断得到堆栈粉碎检测到的错误。
他们是否为操作系统的堆栈设置了一些特殊的权限,或者这里有什么问题? 如何规避这个问题。
当加载/清除大量的数据时,std :: vector会变得越来越慢
安全的C + + std ::string到TCHAR *转换?
libpng警告:应用程序和库中的libpng版本不兼容
nm符号值的偏移量?
优秀的GNU Pth库大量使用这些技术。 这是非常有据可查的,并确定编译时最有效的上下文切换机制。 编辑:实际上在配置时间。
作者的论文: rse-pmt.ps给出了用户空间上下文切换和相关问题的技术说明 – 替代信号堆栈等。
你可以看看其他软件和你一样的肮脏的技巧。 特别是鸡计划 。 您也许可以考虑在目标jmp_buf上手动执行脏东西后使用longjmp 。 当然,这些都不是便携式的。
但请多说明你的总体目标 。 你的问题一般都太神秘了……(这对一些人来说是令人厌恶的)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。