segfault at XXX rip XXX rsp XXX error 4 错误
http://chenwenming.blog.51cto.com/327092/1322103
内核日志经常会出现以下报错.
nginx-payment-n[29580]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29500]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08e8 error 4
nginx-payment-n[29615]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29599]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29573]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29628]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29643]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29736]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
nginx-payment-n[29660]: segfault at 000000010000000f rip 00000039cd008d10 rsp 00007fff4bbb08f8 error 4
这种信息一般都是由内存访问越界造成的,不管是用户态程序还是内核态程序访问越界都会出core, 并在系统日志里面输出一条这样的信息。这条信息的前面分别是访问越界的程序名,进程ID号,访问越界的地址以及当时进程堆栈地址等信息,比较有用的信息是 最后的error number.
在上面的例子中,error number是4, 转成二进制就是110, 即bit2=1, bit1=0, bit0=0, 按照上面的解释,我们可以得出这条信息是由于用户态程序读操作访问越界造成的。
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7.
bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址
内存不足不会引起段错误。段错误通常出现在访问了非法的地址后,非法地址分为3类:
1. 访问的地址没有对应的物理内存。这类错误主要出现在越界访问,例如栈越界。比如说当前进程的栈只有5个页和它对应,共20k大小(x86平台),你访问的地址超过了这个范围,就会发生segmentation fault。
2.对地址的操作与该地址的属性不符合。例如该地址对应的内存是只读的,如文本段,你却试图进行写操作。
3.低权限访问高权限地址。这类情况发生在用户进程试图访问内核空间。例如x86中,TASK_SIZE以上的地址为内核空间,当用户态进程试图访问这些地址时,segmentation fault。********************
segfault at XXX rip XXX rsp XXX error 4 错误相关推荐
- segfault at xxx rip xxx rsp xxx error 4(合并整理)
通过 sudo cat /var/log/messages |grep segfault 或者 sudo dmesg|grep segfault 获得 这种信息一般都是由内存访问越界造成的,不管是用户 ...
- 解决error while loading shared libraries: xxx.so.x类似问题办法和错误原因
解决error while loading shared libraries: xxx.so.x"类似问题办法和错误原因 编译Tengine时,执行make命令,出现以下错误: erro ...
- 解决webpack报错:ERROR in multi ./xxx/xxx.js ./xxx/xxx.js Module not found: Error: Can't resolve '.\xxx\
问题描述 初次使用webpack打包 报了一个鲜红的异常: ERROR in multi ./xxx/xxx.js ./xxx/xxx.js Module not found: Error: Can' ...
- Couldn't register com.zyg.ios.XXX with the bootstrap server. Error: unknown error code.
运行应用突然崩溃,然后再次运行就出现了如下错误: Couldn't register com.zyg.ios.XXX with the bootstrap server. Error: unknown ...
- Error:(8,16) java: 找不到符号和Error:(9, 15) java: 找不到符号符号:类 xxx位置:程序包 xxx.xxx
昨天晚上遇到的一个bug,写了一个main方法,发现执行的时候老师报:Error:(15,8) java: 找不到符号和Error:(9, 15) java: 找不到符号符号:类 xxx位置:程序包 ...
- git 问题解决之remote: Permission to xxx/xxx.git denied to xxx.
Git问题总结: 1.$ git push origin :dev-xx remote: Permission to xxx/xxx.git denied to xxx. fatal: unable ...
- 在Ubuntu下,编译Kernel报错:Makefile:xxx: recipe for target 'xxx' failed
**在Ubuntu下,编译Kernel报如下错误:** Makefile:xxx: recipe for target 'xxx' failed make[2]:***[arch/arm/boot/c ...
- remote: Permission to xxx.git denied to xxx. fatal: unable to access 'https://github.com/xxx.git/':
remote: Permission to xxx.git denied to xxx. fatal: unable to access 'https://github.com/xxx.git/': ...
- TFS2010映射工作区问题 路径 XXX 已在工作区 XXX;XXX 中映射
路径 XXX 已在工作区 XXX;XXX 中映射 原因:之前用别的用户登录工作区并映射到该路径. 解决办法:再用之前的用户登录工作区取消映射即可. 备忘:在文件 C:\Documents and Se ...
最新文章
- 概率论中指数分布介绍及C++11中std::exponential_distribution的使用
- The genome polishing tool POLCA makes fast and accurate corrections in genome assemblies
- Nginx多站点设置
- OKEx比特币现金震荡 巴西央行公布新区块链项目
- 物料价格分析取未分摊和未分配价格差异
- 友声电子秤设置软件_友声电子秤说明书/操作指南?(一)
- 取文字_把这4个字母输入word,会得到一段神秘文字,承载着一段历史
- elementUI多选框组件:多选数组,取值问题
- beyond唱片_如何数字化您的唱片
- 企业内网安全十大防护策略
- linux系统外接硬盘_如何使用外部硬盘安装linux系统?
- SAS的win10 64位安装过程
- 【每日爬虫】:生产者与消费者模式爬取王者荣耀壁纸
- uva11045(最大二分图匹配)
- 不良意志品质及其克服
- 安卓移动开发实验:Android Studio设计微信界面
- 苹果新款笔记本_微软为Bing桌面体验也带来了语音搜索功能_苹果 新款MacBook Pro 13英寸_笔记本新闻...
- 黑莓android驱动程序,黑莓管理器可让用户在任何Android设备上安装黑莓应用
- NBA表格_练篮球是该多看NBA还是网上篮球教程
- 碎片化的时代,我们如何避免被信息瓦解