Linux下段错误的处理方法
来源:互联网 发布:数据库sql2000下载地址 编辑:程序博客网 时间:2024/05/21 22:27
使用Core文件找出代码出错的地方:
代码出错的位置就显示出来了,要是还不出来先run,再where:
Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的(默认不打开),那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。
使用ulimit -a可以查看系统core文件的大小限制;使用ulimit -c [kbytes]可以设置系统允许生成的core文件大小,例如
ulimit -c 0 不产生core文件
ulimit -c 100 设置core文件最大为100k
ulimit -c unlimited 不限制core文件大小
编译文件时候带上-g 加上调试信息,后面要用到gdb调试器来找出段错误的位置。
设置不限制core文件大小:
root@ubuntu:/media/work/test/msg# ulimit -c unlimitedroot@ubuntu:/media/work/test/msg#
运行程序,生成core文件:
root@ubuntu:/media/work/test/msg# ./send段错误 (core dumped)用gdb调试可执行文件和core:
root@ubuntu:/media/work/test/msg# gdb send core GNU gdb (GDB) 7.1-ubuntuCopyright (C) 2010 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law. Type "show copying"and "show warranty" for details.This GDB was configured as "i486-linux-gnu".For bug reporting instructions, please see:<http://www.gnu.org/software/gdb/bugs/>...Reading symbols from /media/work/test/msg/send...done.[New Thread 28805]warning: Can't read pathname for load map: 输入/输出错误.Reading symbols from /lib/tls/i686/cmov/libc.so.6...(no debugging symbols found)...done.Loaded symbols for /lib/tls/i686/cmov/libc.so.6Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.Loaded symbols for /lib/ld-linux.so.2Core was generated by `./send'.Program terminated with signal 11, Segmentation fault.#0 0x080486ca in main () at send.c:1717a->type = 1;(gdb)
代码出错的位置就显示出来了,要是还不出来先run,再where:
(gdb) runStarting program: /media/work/test/msg/send Program received signal SIGSEGV, Segmentation fault.0x080486ca in main () at send.c:1717a->type = 1;(gdb) where#0 0x080486ca in main () at send.c:17(gdb)
0 0
- Linux下段错误的处理方法
- Linux下段错误的查询方法
- Linux下的段错误调试方法
- Linux下的段错误调试方法
- linux下段错误的调试方法
- Linux下的段错误调试方法
- Linux下的段错误
- Linux下段错误的原因以及调试方法
- Linux 下的段错误(Segmentation fault)调试方法(转)
- Linux 下的段错误(Segmentation fault)调试方法
- Linux下调试段错误的方法[Segmentation Fault]--GDB
- Linux下调试段错误的方法[Segmentation Fault]
- linux下的段错误产生原因即调试方法
- linux下段错误检查的便捷方法
- Linux下段错误的原因以及调试方法
- Linux下调试段错误的方法[Segmentation Fault]
- linux下段错误调试方法
- Linux下段错误以及调试方法
- PHP实现生成XML数据和解析XML格式数据
- IOS自带表情的使用方法
- 系统功能显示相关的设置
- 从一个界面push到下一界面左上角返回按钮文字设置
- 让覆盖在下面层的视图接受触摸事件
- Linux下段错误的处理方法
- RMAN-06026与ABSOLUTE_FUZZY_CHANGE#
- 用UIImageView显示动画
- UIImagePickerController
- NSDate
- IOS开发相关网站【转】
- 小议ios内存管理与属性【转】
- ios去掉字符串中的html标签的方法
- 关于对象初始化方法