linux环境下调试嵌入式设备时出现Aborted、segmentation fault、卡死的问题以及关于指针使用的一点想法
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、卡死的问题以及关于指针使用的一点想法相关推荐
- Python 调试工具 PDB(Linux 环境下调试)
转载:http://blog.163.com/gjx0619@126/blog/static/12740839320114995947700/ 在python中使用pdb模块可以进行调试 import ...
- windows和linux环境下的嵌入式开发区别
主机(PC)开发差别: 在windows下写程序 1.--->打开Microsoft Visual C++ 6.0程序 2.--->关闭提示窗口(有的程序不提示) 3.--->fil ...
- RHEL环境下调试Shell脚本时遇到字符串转换整数的问题
字符串转整型!这种需求应该在编程语言里很常见,Shell里就太麻烦了.有人问为什么要转换?我遇到的问题是参数数量$#需要进行整型运算,而$#取出来的却是字符串,以下为证: if [ $# != 1 ] ...
- Linux环境下段错误的产生原因及调试方法小结
From:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基 ...
- [转]Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的"段错误"(Segme ...
- Linux环境下段错误分析及调试方法
年轻时的每一个段错误,都会成为你程序人生上的垫脚石.如果是还在学习阶段的同学,希望能先通过自己的判断来找出段错误的地方. 本篇文章系转载及整理,原文链接如下: http://www.cnblogs.c ...
- Linux环境下段错误的产生原因及调试方法
1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于" ...
- 嵌入式LINUX环境下视频采集知识
Video for Linux two(Video4Linux2)简称V4L2,是V4L的改进版.V4L2是linux操作系统下用于采集图片.视频和音频数据的API接口,配合适当的视频采集设备和相应的 ...
- ffmpeg编译gb28181_RTSP/GB28181协议/海康SDK/Ehome协议视频上云网关EasyCVR视频平台在linux环境下ffmpeg源码单步调试环境搭建...
目前TSINGSEE青犀视频研发的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Eho ...
最新文章
- 【CCD图像检测】0:开篇总述
- 了解电商优惠券的一生,看完这篇就足够了!
- SyntaxError: Non-ASCII character '\xe9' in file...ubuntu系统下python运行时提示编码格式不正确以及提示No module named xxx
- 高精度大数c++类模板 很好用
- python的方向_Python Shell下方向键显示「^[[C^[[D」修复方法
- 数字后端基本概念介绍<Tap Cell>
- Shell脚本中使用awk进行空格分词
- python apply函数的用法_python apply函数
- Winter Vacation Training(5st Week)
- 渴望成长的工程师-你了解一万小时定律吗
- CSUOJ--1633 	 Landline Telephone Network
- 酷睿i7和i5对计算机专业要求,英特尔i5已经足够用 还有必要升级i7处理器吗?
- 基于FPGA的实时视频信号处理方案
- SwiftUI 界面大全之宠物领养管理App(教程含源码)
- 在win10系统中安装Visual C++ 6.0的具体方法
- 颜色空间探究:RGB、HSV和HSL
- airpods pro是按压还是触摸_外媒曝AirPods Pro出现广泛故障:触摸和佩戴识别失效...
- Android读书笔记---View基础
- MD5制作绑带小技巧
- jvm学习笔记-chapter6 类文件结构
热门文章
- 关于mongodb的可视化工具:nosql manager for mongodb
- python return返回值_Python return语句 函数返回值
- Java中使用JNA实现全局监听Linux键盘事件
- java月实训小结800字_Java实训小结
- C++非递归解决汉诺塔问题
- android融云监听消息,关于android:融云-IMkit-拦截或监听所有发送消息
- oracle使用游标批量删除数据,oracle 游标批量处理数据
- 数值运算python嵩天_python语法_算数运算+赋值运算符+比较运算符+逻辑运算符
- java中类的接口是什么_Java中的接口知识汇总
- 如何控制事物_如何使用QC七大手法?62页QC老七大工具,果断收藏