我正在浏览各种setjmp和longjmp实现的来源,并注意到并非所有的CPU寄存器都保存在jmp_buf结构中.在查看AMD64 ABI之后,我注意到只保存了被调用者保存的寄存器.
我不明白当只保存了一些寄存器时,如何完全恢复功能状态.当然,未保存的寄存器必须反复多次破坏,直到我longjmp稍后再打电话为止?
然而,一切都很完美,所以肯定有一些我不明白的东西.我希望有人可以对此有所了解.
谢谢!
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |