文章目录

  • 关于SIGSEGV错误及处理方法

https://blog.csdn.net/brace/article/details/1102422

关于SIGSEGV错误及处理方法

今天编程遇到了SIGSEGV错误(段错误),比较困惑,所以找了些资料,总结一下:

(1)官方说法是:
SIGSEGV --- Segment Fault. The possible cases of your encountering this error are: 1.buffer overflow --- usually caused by a pointer reference out of range.
//缓冲区溢出---通常由指针引用超出范围引起。2.stack overflow --- please keep in mind that the default stack size is 8192K.
//堆栈溢出---请记住默认堆栈大小是8192K。3.illegal file access --- file operations are forbidden on our judge system.
//非法文件访问---我们的裁判系统禁止文件操作。(2)SIGBUS与SIGSEGV信号的一般区别如下:
1) SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。通常是未对齐的数据访问所致。2) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。(3)Linux的mmap(2)手册页
--------------------------------------------------------------------------
使用映射可能涉及到如下信号SIGSEGV试图对只读映射区域进行写操作SIGBUS 试图访问一块无文件内容对应的内存区域,比如超过文件尾的内存区域,或者以前有文件内容对应,现在为另一进程截断过的内存区域。
--------------------------------------------------------------------------弄清楚错误以后,就要查找产生错误的根源,一般我用以下两种方法:
(1)gcc -g 编译 ulimit -c 20000 之后运行程序,等core dump 最后gdb -c core <exec file> 来查调用栈
(2)使用strace execfile,运行程序,出错时会显示那个系统调用错

linux SIGSEGV信号相关推荐

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

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

  2. linux 程序收到sigsegv信号_linux下定位多线程内存越界问题实践总结

    最近定位了在一个多线程服务器程序(OceanBase MergeServer)中,一个线程非法篡改另一个线程的内存而导致程序core掉的问题.定位这个问题历经曲折,尝试了各种内存调试的办法.往往感觉就 ...

  3. linux kill信号列表

    linux kill信号列表 $ kill -l 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL 5) SIGTRAP      6 ...

  4. linux python 信号,Python模块之信号(signal)

    在了解了Linux的信号基础之 后,Python标准库中的signal包就很容易学习和理解.signal包负责在Python程序内部处理信号,典型的操作包括预设信号处理函数,暂 停并等待信号,以及定时 ...

  5. linux 查看进程的信号,Linux 进程信号查看与控制

    Linux 进程信号查看与控制 1) SIGHUP 本信号在用户终端连接 (正常或非正常) 结束时发出 通常是在终端的控制进程结束时 通知同一 session 内的各个作业 这时它们与控制终端不再关联 ...

  6. Linux进程信号(产生、保存、处理)/可重入函数概念/volatile理解/SIGCHLD信号

    首先区分一下Linux信号跟进程间通信中的信号量,它们的关系就犹如老婆跟老婆饼一样,没有一毛钱的关系. 信号的概念 信号的概念:信号是进程之间事件异步通知的一种方式,属于软中断.比如:红绿灯是一种信号 ...

  7. Linux系统信号定义

    Linux系统信号,即signal,定义通常在这个头文件中: /usr/include/asm-generic/signal.h 常见的信号如下: #define SIGHUP         1 # ...

  8. Linux Signal信号详解

    信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念.Linux对信号机制的大致实现方法.如何使用信号,以及有关信号的几个系统调用. 信号机制是进程之间相互传递消息的一种方法,信号全 ...

  9. 段违例:sigsegv信号

    sigsegv信号 在调试程序时经常会遇到各种段错误bug导致程序崩溃,用gdb调试发现崩溃的原因通常是因为进程收到了sigsegv信号.即系统报段错误是因为收到了sigsegv信号! 所以在此记录一 ...

最新文章

  1. Oracle对sum求和进行if,Excel中sumif函数和sumifs函数进行条件求和的异同
  2. 晶振噪声及杂散_如何判断是否需要使用分立式晶振和振荡器呢?
  3. python做电脑软件-PC端数据下载软件开发(Python)
  4. Redis 五种数据结构以及三种高级数据结构解析以及使用
  5. 2019年工程造价表_住建部发布2019年工程造价咨询企业数据统计公报!
  6. 隐藏马尔科夫模型HMM
  7. ie传递给系统调用的数据区域太小_内存区域与内存溢出异常
  8. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)
  9. 操作系统OS进程(一)初识
  10. 打通 C++ 和 C# 关于 COM 组件互相调用的任督二脉
  11. 攻防世界 mobile 安卓移动端简单题练习区 答题(1-12题解)
  12. 暑假NOIP期末考试【1】—— Phantom
  13. 微信小程序上传头像,使用wx.chooseImage; wx.uploadFile
  14. android 文件下载和保存
  15. C语言填空概念题及答案,C语言填空题以及答案
  16. php用date语句获取时间,PHP date函数获取时间几个例子
  17. double浮点数转字符串算法
  18. 写一个PE的壳_Part 4:修复对ASLR支持+lief构建新PE
  19. ivew 的offset用法
  20. OpenShift 4 - 在单节点 OpenShift 上部署 ODF 存储软件

热门文章

  1. 【Unity】带有字符淡入效果的TextMeshPro打字机效果组件
  2. c 连接oracle数据库字符串,C#数据库连接字符串 - 水泛舟的专栏 - CSDN博客
  3. 如何识别全部单号快递公司查询每个单号物流
  4. 聚焦产业数字化转型,第19届鹏城秘书长茶会成功举办
  5. 上海某品牌外卖店采用超薄柔性石材装饰柜台,提升品牌档次
  6. 2020-08-08网易笔试
  7. 提出反向传播算法、深度学习之父 Geoffrey Hinton 将要来演讲
  8. MATLAB 神经网络预测工具箱
  9. 教你怎样约女孩子出去
  10. CentOS 5.4 配置本地YUM源