linux下系统对于sigsegv错误时的处理

一般来讲,对非法地址的访问会导致应用程序收到由系统发送的sigsegv信号,默认情况下,函数对于这个信号的处理是退出。

但是为了方便调试,我们可以自己设置处理函数,使用signal函数。

这里比较重要的一点是,按照流程,cpu取完一条指令时,pc会指向下一条指令,那么如果我们指定函数对sigsegv信号不处理的话,那么就可以跳过出现错误的语句而直接执行下一条语句。

但是linux系统对于从数据异常返回时,会把pc重新指向该语句,所以根本没办法跳过这句话。

 

posted @ 2016-06-30 16:00  __sipl  阅读(1415)  评论(0编辑  收藏  举报