SIG是信号名的通用前缀。SEGV是segmentation violation(段违例)的缩写。

在POSIX兼容的平台上,SIGSEGV是当一个进程执行了一个无效的内存引用,或发生段错误时发送给它的信号。SIGSEGV的符号常量在头文件signal.h中定义。因为在不同平台上,信号数字可能变化,因此符号信号名被使用。通常,它是信号#11。

对于不正确的内存处理(见段错误),计算机程序可能抛出SIGSEGV。操作系统可能使用信号栈向一个处于自然状态的应用程序通告错误,由此,开发者可以使用它来调试程序或处理错误。

在一个程序接收到SIGSEGV时的默认动作是异常终止。这个动作也许会结束进程,但是可能生成一个核心文件以帮助调试,或者执行一些其他特定于某些平台的动作。例如,使用了grsecurity补丁的Linux系统可能记录SIGSEGV信号以监视可能的使用缓存溢出的攻击尝试。

SIGSEGV可以被捕获。也就是说,应用程序可以请求它们想要的动作,以替代默认发生的动作。这样的动作可以是忽略它、调用一个函数,或恢复默认的动作。在一些情形下,忽略SIGSEGV导致未定义行为。

一个应用程序可能处理SIGSEGV的例子是调试器,它可能检查信号栈并通知开发者目前所发生的,以及程序终止的位置。

SIGSEGV通常由操作系统生成,但是有适当权限的用户可以在需要时使用kill系统调用或kill命令(一个用户级程序,或者一个shell内建命令)来向一个进程发送信号。

SIGSEGV 11相关推荐

  1. 内存访问错误造成Segmentation fault (SIGSEGV)

    linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal Signal     Value     Action   Comment ─── ...

  2. linux SIGSEGV信号 内存访问错误 Segmentation fault

    linux下程序对SIGSEGV信号的默认处理方式是产生coredump并终止程序,可以参考man 7 signal Signal     Value     Action   Comment ─── ...

  3. 偶然出现 segmentation fault 时的调试方法与 SIGSEGV 信号

    问题描述 最近遇到一个 bug,有一定的偶然性会出现段错误.第一步需要确定的是段错误出现在哪里.可由于这个 bug 的偶然性,常规的方法无法确定问题. 根据经验,这个问题有两个方案可以使用. 生成 c ...

  4. c语言信号机制以及中断

    用户态到内核态切换途径: 1:系统调用        2:中断 3:异常 中断类型分为如下两大类: 一.强迫性中断:正在运行的程序所不期望的,来自硬件故障或外部请求. 1.I/O 中断:来自外部设备通 ...

  5. linux下清理信号量,Linux下kill的信号量列表

    Linux下kill的信号量列表 kill -s SIGSTOP PID i.e. kill -s SIGSTOP PID (暂停进程) kill -s SIGCONT PID (恢复运行进程) #d ...

  6. android crash 定位,Android NDK Crash 定位分析

    当拿到应用的crash日志,如果是在java层出现了异常,相信大家都知道通过堆栈信息查找到奔溃的代码,但是如果是在native层出现了问题,面对下面的一堆内存地址,有些小伙伴可能就会觉得无从下手了: ...

  7. Linux 有关管理进程的命令小结

    1.kill NAME kill - terminate a process (终止进程) SYNOPSIS kill [-signal] pid 说明: kill 给指定进程发送指定信号. 如果没有 ...

  8. posix_kill 信号

    2019独角兽企业重金招聘Python工程师标准>>> root@alex-virtual-machine:/home/alex# kill -l  1) SIGHUP     2) ...

  9. golang signal 信号处理

    目录 信号类型 golang 信号发送和处理 信号类型 个平台的信号定义或许有些不同.下面列出了POSIX中定义的信号. Linux 使用34-64信号用作实时系统中. 命令 man signal 提 ...

最新文章

  1. html与css结合动效案例,CSS3制作动画效果例子
  2. java有参和无参的用处_Java对比有参数和无参数
  3. python virtualenv 坑_Python 虛擬環境 | Mac/Linux下如何避坑安裝配置Virtualenv
  4. 坑爹的RegExp test()
  5. python 局部变量和全局变量 global
  6. 联想微型计算机4250怎么拆机,联想T430笔记本拆机增加内存条图解教程
  7. 通达信手机版分时图指标大全_今天教大家怎么把通达信副图指标源码导入手机通达信软件上。...
  8. ABB机器人FOR循环指令
  9. 3650m5设置u盘启动_联想启天M425台式机设置u盘启动两种模式(支持uefi/bios双启动)...
  10. 买了北京亲子年票但没有小孩的朋友,接下来的一年我都给你安排好啦!!...
  11. 什么是零点漂移,怎么抑制零点漂移?(硬件每日一题)
  12. matlab sub2ind函数
  13. 喜马拉雅数据接口 JSSDK API 接入 demo WEB版 标准登录 、免登陆
  14. Recap|Hadoop User Group France
  15. 微信小程序开发工具调试
  16. 电子邮件营销中的邮件主题设计
  17. 你期待的Domino V12有什么?
  18. 工业相机(高速相机)与普通相机的差别
  19. cisco3560及二层交换机配置vlan及常用命令
  20. 阅读 Android源码的一些姿势

热门文章

  1. c语言/洛谷学习笔记之顺序结构(完结)
  2. 拼了(求婚事务所电视原声带)铃声 拼了(求婚事务所电视原声带)...
  3. 流行框架(二)网络请求库 OKhttp
  4. Bootstrap 框架详解
  5. 能够出线的学生序号(0~9),每行一个序号。
  6. 时钟电路-负载电容和电阻计算
  7. 计算机修复需要连接互联网么,win10网络连接问题怎么修复
  8. 即使世界毁灭,我也想再见你一面
  9. RK3399 android7.1 音频底层调试--tinyalsa及相关问题--已解决
  10. 暂退法(Dropout)