Linux信号处理。如何获取中断指令的地址? [英] Linux signal handling. How to get address of interrupted instruction?

查看:20
本文介绍了Linux信号处理。如何获取中断指令的地址?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有办法找出被某个信号中断的机器指令的地址?假设我们位于sigaction()建立的处理程序,并且对传递的siginfo_tucontext_t具有所有访问权限。 据我所知,手册页对此只字不提。

推荐答案

不可移植。但这是针对x86_64的:

结构ucontext_t包含寄存器REG_RIP的值,它应该包含您要查找的值。这是从sigHandler返回后将执行的第一条指令。

其他架构应该有类似的寄存器(x86_32上的EIP等)。

这篇关于Linux信号处理。如何获取中断指令的地址?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆