linux – 检测堆栈溢出
发布时间:2020-05-23 07:11:30 所属栏目:Linux 来源:互联网
导读:操作系统如何检测用户空间程序的堆栈溢出[然后将SIGTERM或SIGSEGV发送到那些用户空间程序]? 答案取决于目标架构和特定操作系统.既然这个问题被标记为 Linux,那么你就会对这个问题产生偏见,而这个问题似乎更为笼统. 在具有MMU保护支持的复杂OS或RTOS(例如Linu
|
操作系统如何检测用户空间程序的堆栈溢出[然后将SIGTERM或SIGSEGV发送到那些用户空间程序]? 解决方法答案取决于目标架构和特定操作系统.既然这个问题被标记为 Linux,那么你就会对这个问题产生偏见,而这个问题似乎更为笼统.在具有MMU保护支持的复杂OS或RTOS(例如Linux或QNX Neutrino)中,可以使用存储器保护机制,例如已经提到的保护页面.这样的OS当然需要具有MMU的目标. 没有MMU支持的更简单的OS和典型的RTOS调度内核可以使用许多方法.最简单的方法是在栈顶部放置一个保护签名,在调度程序运行时检查该签名是否有修改.这有点昙花一现,它要求堆栈溢出实际上修改了签名,并且在下次运行调度程序之前导致的损坏不会导致崩溃.一些具有片上调试资源的系统可能能够在签名字上放置一个访问断点,并在命中时引发异常. 在开发中,一种常见的技术是首先用签名填充每个线程堆栈并让线程定期检查“高潮”并且如果超过某个百分比水平则发出警告. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- linux – 如何找到只能远程访问服务器的RAID配置/级别和RPM
- linux – rpm -ivh和yum install之间的区别
- nginx The requested URL /404.html was not found on this
- linux – 我们如何在Bash中获得两个数组的并集?
- php – chmod()操作不允许 – FatFree框架
- LINUX入门:Linux RedHat无法安装软件问题(No package gcc
- redhat – rpm spec:基于发行版的条件要求
- linux – 在debian 7上安装libssl0.9.8
- linux – 如何在服务器重启后自动启动mysql(CentOS其他发行
- 如何比较目录之间的差异(linux)
