core dump

为什么会有core dump

当一个程序发生异常的时候,可以选择把进程的用户空间内存写到磁盘上,文件名叫core,core-dump(核心转储)用于查看进程的错误信息,便于分析程序,进行事后调试。

操作系统显示core文件的大小

一般情况下系统会限制core文件的大小的,因为服务器上一般都有自启进程的进程,用于把挂掉的进程重新启动起来,如果要是产生core文件的话,服务器上挂满了core文件会产生不好的结果。

使用core文件

查看core文件的限制
ulimit  -a
设置core文件的大小(设置为1K)
ulimit -c 1024
编辑的时候必须家-g选项
gcc test.c - o test -g
运行程序
./test
生成core文件
./test core.1234

生成core文件的一般情况

  • 内存越界
  1. 数组下标越界
  2. 字符号访问越界
  3. strcpy 使用时的越界问题
  • 非法指针
  1. 空指针
  2. 乱转换,没有内存对齐
  • 栈溢出
  1. 全局变量定义栈内存过大
  • 多线程
  1. 没有加锁(多线程问题必须加锁)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值