Linux系统日志segment分析
来源:互联网 发布:备份短信的软件 编辑:程序博客网 时间:2024/05/29 19:47
Linux系统日志下segment fault
1. 系统日志分析——得出大概的错误类型:
Linux下载下来的系统日志:
192.168.196.155 Dec 1 15:11:00 adapi196155 kernel: ad_calc_server[9341]: segfault at 00002a00cfbf1e80rip 0000003ad10b7672 rsp 00002aad4cf1ceb8 error 6
192.168.197.155 Dec 1 16:13:57 adapi197155 kernel: ad_calc_server[29351]: segfault at00002a00643d1c40 rip 0000000000629fd5rsp 00002aad0dd73f70 error 4
依据右面的错误码:
error number是由三个字位组成的,从高到底分别为bit2 bit1和bit0,所以它的取值范围是0~7.
· bit2: 值为1表示是用户态程序内存访问越界,值为0表示是内核态程序内存访问越界
· bit1: 值为1表示是写操作导致内存访问越界,值为0表示是读操作导致内存访问越界
· bit0: 值为1表示没有足够的权限访问非法地址的内容,值为0表示访问的非法地址根本没有对应的页面,也就是无效地址
可以看到:
6——表示用户态程序内存访问越界,同时写操作导致内存访问越界
4——表示用户态程序内存访问越界
2. 0000000000629fd5这个表示堆栈里面的编号,利用
readelf -s a.out > temp可以查看符号表,就能找到对应的函数了。
objdump -d a.out > a.s 可以反汇编,不但能找到函数,还能直接定位到指令
将计算模块的可执行程序进行反汇编:
在*.s中找到:629fd5: 48 8b 4010 mov 0x10(%rax),%rax
它属于这个段的:
0000000000629f96 <_ZNSt3tr19hashtableISsSt4pairIKSsSsESaIS3_EN8Internal10extract1stIS3_EESt8equal_toISsENS_4hashISsEENS5_17mod_range_hashingENS5_19default_ranged_hashENS5_19prime_rehash_policyELb0ELb0ELb1EE18m_deallocate_nodesEPPNS5_9hash_nodeIS3_Lb0EEEm>:
在符号表temp文件中找到:
4562: 0000000000629f96 127FUNC WEAK DEFAULT 12 _ZNSt3tr19hashtableISsSt4
可以看出可能是hashtable出了问题?
- Linux系统日志segment分析
- Linux系统日志及分析
- linux系统日志以及分析
- Linux系统日志及日志分析
- Linux系统日志及日志分析
- Linux系统日志及日志分析
- Linux系统日志及日志分析
- Linux系统日志及日志分析
- Linux系统日志文件系统及性能分析
- Linux系统日志分析与管理
- Linux系统日志管理、同步、采集、分析
- linux之Segment Fault错误分析[1]
- linux之Segment Fault错误分析[2]
- 【日志】linux 日志系统
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
- 如何查看linux系统下的各种日志文件 linux 系统日志的分析大全
- POJ 2135 Farm Tour
- lucene 抛出的异常
- B*索引:唯一和非唯一索引的区别
- win2008忘记密码?怎么办?
- gdb :test prog
- Linux系统日志segment分析
- PAZU
- Asp.net Oracle Clob 大文本处理方法
- 读书笔记之shell排序
- WINCE 6.0 X86 BIOS bootloader 的实现
- 面向站长和网站管理员的Web缓存加速指南
- 本来想转一下收藏的,但是网速很慢,只好这样了,冒犯一下原来的版主了
- Carbide.c++设置
- getrlimit与setrlimit函数