Arm64/Linux用户态程序跳过指令处理SIGSEGV失败问题排查
Arm64/Linux下SIGSEGV信号处理:跳过异常指令的问题
我尝试在Arm64/Linux用户态程序中,通过跳过触发SIGSEGV的指令来处理该信号:
- 最初编写原型代码时,发现Linux会介入CPU异常与用户态信号处理流程,信号处理函数运行时的栈、寄存器上下文和触发异常时的上下文完全不同
- 后续修改代码添加了寄存器保存与恢复逻辑,但运行程序时,虽然能捕获到SIGSEGV,却触发了总线错误,并未进入预期的
while(true)死循环
问题1
我的概念理解是否正确?若不正确,遗漏了哪些关键细节?
问题2
若概念大致正确,为何程序未按预期进入while(true)死循环?
内容的提问来源于stack exchange,提问作者pipsqueaker117
相关产品推荐
相关产品推荐

