系统日志中展现的段错误
来源:互联网 发布:iphone在线软件 编辑:程序博客网 时间:2024/06/06 07:01
segfault at 0000000000000000 rip 0000000000400470 rsp 0000007fbffff8a0 error 6
这种信息一般都是由内存访问越界造成的,不管是用户态程序还是内核态程序访问越界都会出core, 并在系统日志里面输出一条这样的信息。这条信息的前面分别是访问越界的程序名,进程ID号,访问越界的地址以及当时进程堆栈地址等信息,比较有用的信息是最后的error number. 在上面的信息中,error number是4 ,下面详细介绍一下error number的信息:
在上面的例子中,error number是6, 转成二进制就是110, 即bit2=1, bit1=1, bit0=0, 按照上面的解释,我们可以得出这条信息是由于用户态程序读操作访问越界造成的。
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7.
bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址
根据segfault信息调试定位程序bug:
#include<stdio.h>int main()
这种信息一般都是由内存访问越界造成的,不管是用户态程序还是内核态程序访问越界都会出core, 并在系统日志里面输出一条这样的信息。这条信息的前面分别是访问越界的程序名,进程ID号,访问越界的地址以及当时进程堆栈地址等信息,比较有用的信息是最后的error number. 在上面的信息中,error number是4 ,下面详细介绍一下error number的信息:
在上面的例子中,error number是6, 转成二进制就是110, 即bit2=1, bit1=1, bit0=0, 按照上面的解释,我们可以得出这条信息是由于用户态程序读操作访问越界造成的。
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7.
bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址
根据segfault信息调试定位程序bug:
#include<stdio.h>int main()
{
int *p;
*p=12;
return 1;
}
1. gcc testseg.c -o testseg -g,运行./testseg查看dmesg信息如下:
testseg[26063]: segfault at 0000000000000000 rip 0000000000400470 rsp 0000007fbffff8a0 error 6
2. 运行addr2line -e testseg 0000000000400470,输出如下:
/home/xxx/xxx/c/testseg.c:5 [...]
1. gcc testseg.c -o testseg -g,运行./testseg查看dmesg信息如下:
testseg[26063]: segfault at 0000000000000000 rip 0000000000400470 rsp 0000007fbffff8a0 error 6
2. 运行addr2line -e testseg 0000000000400470,输出如下:
/home/xxx/xxx/c/testseg.c:5 [...]
- 系统日志中展现的段错误
- 系统日志中NetworkX驱动加载错误的解决办法
- 在分布式系统中进行日志查询与管理的新手段介绍
- linux 系统查找段错误的方法
- Qt编程中诡异的段错误
- C中遇到的段错误
- Qt编程中诡异的段错误
- Android4.1中 HAL的段错误
- Linux sed查看某时间段的系统日志
- Linux sed查看某时间段的系统日志
- Linux sed查看某时间段的系统日志
- 系统展现
- UncaughtExceptionHandler定制自己的错误日志系统
- 系统错误日志函数
- opensource 日志展现
- 段错误的调试
- 段错误的解决
- 段错误的处理
- 杂谈系统与VC中的环境变量
- 关于TCP MSS值
- 分析称苹果未来5年推搜索引擎可能性为70%
- IT社区
- AJAX框架介绍
- 系统日志中展现的段错误
- 你家孩子打疫苗了吗
- unix实际用户ID和有效用户ID解析(部分转贴)
- 微博客传播特性及盈利模式分析
- 一道面试题,据说是阿里巴巴的。
- getopt函数分析
- 关闭ff窗口和js取时间
- js获取地址栏参数的方法
- 世界500强企业中国的CEO们对 80后 90后的忠告