linux环境下调试一些嵌入式设备时出现Aborted、segmentation fault、卡死的问题,这些问题可能的原因为:
1、Aborted的问题,例如:
# ./logUtils0322
[UnitTest.cpp]:will init log
[cfgfile.cpp]: logfile open suc
[LogUtils.cpp]:NOTICE  OPen configue file SUC
[LogUtils.cpp]:NOTICE suc OpenLogFile()
[LogUtils.cpp]:NOTICE  suc Log_Init()
Aborted
这个问题是由于访问内存错误造成的,例如一次时因为循环越界,导致访问界外内存时出现过此种问题。

2、程序卡死的问题,就是程序的进程还在,但是却卡在那里什么都不做,该问题可能也是内存访问越界造成的;另外还可能是多线程中混合使用C和C++的函数造成,例如:某些嵌入式linux平台对C++支持的不好,这时候如果在多线程中混合使用printf和cout,就会造成此问题

3、segmentation fault的问题也是访问非法内存造成的。

造成上述问题的主要原因就是内存操作引起的,因此在开发过程中,使用指针一定特别留心;
1、申请指针变量时一定将其赋值为NULL;
例如:
Itest* pTest = NULL;
pTest = GetInstance();

2、使用指针之前一定先判断有效性;
例如:
if(NULL != pTest)
    pTest->Display();

3、避免重复释放,在释放内存之前一定先判断是否已经为空;
4、释放内存之后一定将指针赋值为NULL;
例如:
if(NULL != pTest)
{
    delete pTest;
    pTest = NULL;

}

开发过程中,多费点事多写两行必要的代码,会在关键时候帮很大的忙。

linux环境下调试嵌入式设备时出现Aborted、segmentation fault、卡死的问题以及关于指针使用的一点想法相关推荐

  1. Python 调试工具 PDB(Linux 环境下调试)

    转载:http://blog.163.com/gjx0619@126/blog/static/12740839320114995947700/ 在python中使用pdb模块可以进行调试 import ...

  2. windows和linux环境下的嵌入式开发区别

    主机(PC)开发差别: 在windows下写程序 1.--->打开Microsoft Visual C++ 6.0程序 2.--->关闭提示窗口(有的程序不提示) 3.--->fil ...

  3. RHEL环境下调试Shell脚本时遇到字符串转换整数的问题

    字符串转整型!这种需求应该在编程语言里很常见,Shell里就太麻烦了.有人问为什么要转换?我遇到的问题是参数数量$#需要进行整型运算,而$#取出来的却是字符串,以下为证: if [ $# != 1 ] ...

  4. Linux环境下段错误的产生原因及调试方法小结

    From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...

  5. [转]Linux环境下段错误的产生原因及调试方法小结

    最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segme ...

  6. Linux环境下段错误分析及调试方法

    年轻时的每一个段错误,都会成为你程序人生上的垫脚石.如果是还在学习阶段的同学,希望能先通过自己的判断来找出段错误的地方. 本篇文章系转载及整理,原文链接如下: http://www.cnblogs.c ...

  7. Linux环境下段错误的产生原因及调试方法

    1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...

  8. 嵌入式LINUX环境下视频采集知识

    Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备和相应的 ...

  9. ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...

    目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...

最新文章

  1. 【CCD图像检测】0:开篇总述
  2. 了解电商优惠券的一生,看完这篇就足够了!
  3. SyntaxError: Non-ASCII character '\xe9' in file...ubuntu系统下python运行时提示编码格式不正确以及提示No module named xxx
  4. 高精度大数c++类模板 很好用
  5. python的方向_Python Shell下方向键显示「^[[C^[[D」修复方法
  6. 数字后端基本概念介绍<Tap Cell>
  7. Shell脚本中使用awk进行空格分词
  8. python apply函数的用法_python apply函数
  9. Winter Vacation Training(5st Week)
  10. 渴望成长的工程师-你了解一万小时定律吗
  11. CSUOJ--1633 Landline Telephone Network
  12. 酷睿i7和i5对计算机专业要求,英特尔i5已经足够用 还有必要升级i7处理器吗?
  13. 基于FPGA的实时视频信号处理方案
  14. SwiftUI 界面大全之宠物领养管理App(教程含源码)
  15. 在win10系统中安装Visual C++ 6.0的具体方法
  16. 颜色空间探究:RGB、HSV和HSL
  17. airpods pro是按压还是触摸_外媒曝AirPods Pro出现广泛故障:触摸和佩戴识别失效...
  18. Android读书笔记---View基础
  19. MD5制作绑带小技巧
  20. jvm学习笔记-chapter6 类文件结构

热门文章

  1. 关于mongodb的可视化工具:nosql manager for mongodb
  2. python return返回值_Python return语句 函数返回值
  3. Java中使用JNA实现全局监听Linux键盘事件
  4. java月实训小结800字_Java实训小结
  5. C++非递归解决汉诺塔问题
  6. android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
  7. oracle使用游标批量删除数据,oracle 游标批量处理数据
  8. 数值运算python嵩天_python语法_算数运算+赋值运算符+比较运算符+逻辑运算符
  9. java中类的接口是什么_Java中的接口知识汇总
  10. 如何控制事物_如何使用QC七大手法?62页QC老七大工具,果断收藏