文章目录

  • 关于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. 微信小程序开发文档链接
  2. 前端进阶-Event
  3. 【BIOS来电重启】Restore AC Power Loss
  4. 关于权限的数据库设计
  5. 第一百一十八天 how can I 坚持
  6. 聊下并发和Tomcat线程数(错误更正)
  7. 32. My Experiences in the Factories 我在工厂的经历
  8. java 跨平台的等宽字体_值得推荐的优秀编程字体/代码等宽字体收集(转)
  9. xshell评估过期解决办法
  10. android手机内存其他文件夹里,别再胡乱清理手机内存了,1秒清空这些文件夹,手机瞬间腾出50G...
  11. 普乐郡——回乐县(城市记忆7)
  12. Windows XP系统下建立V-PN服务器
  13. AWS助力海信集团智慧家居全球化运营
  14. nginx 配置集群
  15. Linux系统之Xinetd服务
  16. 手把手教你用c语言编写网络病毒
  17. mysql简化的审批流程表设计
  18. c语言utf8字符转换,C语言示例-中文转换成UTF-8编码
  19. Asp.Net Core 6.0 Mvc入门 图书查询系统 附带源码下载
  20. 删除一个node或者属性

热门文章

  1. 【技术类】【遥感入门系列】2、遥感成像与遥感影像特征
  2. cheerio 中文文档
  3. paddlepaddle 13 迁移学习中的卷积基加强训练方法-RIFLE
  4. IOS开发 - math.h常用数学方法
  5. python 的blaze库_Python 开发者 2017 应该关注的 7 个类库
  6. tidb 企业_TIDB介绍
  7. restrict关键字用法
  8. 用calibre抓取RSS新闻制作电子书及推送到kindle
  9. Linux之手把手教会修改网卡名称
  10. 时钟电路-负载电容和电阻计算