关于嵌入式下系统自动kill进程的简单分析
2016-01-19 11:21
225 查看
当一个嵌入式系统中某个进程正常运行了一段时间后,突然挂掉了,此时的你会怎么办?是不是会一头雾水,因为这种问题很不好定位。
当连接串口去监测时,会发现出现以下的提示:
然后XXX进程就异常退出了。
通过对提示的分析,就是使用的内存大小超出了可用范围。这种情况往往是由于内存泄漏导致的。一开始启动进程时内存是足够多的,由于进程在不停地申请分配内存空间而没有在使用完后正常释放,从而导致可用的内存资源越来越少,当消耗到系统监控的最小限度时系统就会自动发出指令把该进程kill掉了。
因此看到上面的提示的时就应该想到会不会是内存泄露了。
内存泄露,很多时候是由于我们手动分配了堆空间而没有正常释放导致的。此时不用去怀疑系统是不是本身存在问题,更不建议去查看系统内核中对内存的管理,因为问题就出在该进程代码中,好好去查一下哪里手动分配了内存空间,有没有正常释放了。
关于内存泄露的说法,博客中有很多资源,在这里就不做过多的解释了,如果不清楚内存泄露的定义的友友可以另行去搜一搜。
当连接串口去监测时,会发现出现以下的提示:
然后XXX进程就异常退出了。
通过对提示的分析,就是使用的内存大小超出了可用范围。这种情况往往是由于内存泄漏导致的。一开始启动进程时内存是足够多的,由于进程在不停地申请分配内存空间而没有在使用完后正常释放,从而导致可用的内存资源越来越少,当消耗到系统监控的最小限度时系统就会自动发出指令把该进程kill掉了。
因此看到上面的提示的时就应该想到会不会是内存泄露了。
内存泄露,很多时候是由于我们手动分配了堆空间而没有正常释放导致的。此时不用去怀疑系统是不是本身存在问题,更不建议去查看系统内核中对内存的管理,因为问题就出在该进程代码中,好好去查一下哪里手动分配了内存空间,有没有正常释放了。
关于内存泄露的说法,博客中有很多资源,在这里就不做过多的解释了,如果不清楚内存泄露的定义的友友可以另行去搜一搜。
相关文章推荐
- 我的 ARM+Linux 学习路线
- 开发学习记录之看门狗驱动
- 时钟+温度+遥控设置,综合时钟例子
- Linux下运行openwebos- -(转)
- Linux下运行openwebos- -(转)
- BusyBox 简化嵌入式 Linux 系统
- EGL 学习
- 嵌入式开发设计方法变化的背景
- 嵌入式人才的发展方向
- 汇编调用c函数为什么要设置栈
- 三角函数的实现
- 嵌入式桌面操作系统使用与制作攻略
- 嵌入式系统烧写uboot/bootloader/kernel的一般方法
- 甲骨文收购Sleepycat 丰富嵌入式产品线
- 嵌入式Linux操作系统学习规划
- 基于嵌入式多芯片模组的微机保护平台
- 嵌入式系统中常用文件系统的制作总结
- 嵌入式C语言基础教程一
- 汇总Dotfuscator自定义规则中的元素选择
- 3. 类型限定符