如何在ARM体系结构上检查C应用程序中的内存泄漏

我正在用C语言编写使用ARM体系结构的设备.我想检查我的应用程序中的内存泄漏.正如在我的设备中,iam工作(ARM体系结构)不支持Valgrind ..所以我可以使用其他选项来检查我的应用程序中的内存泄漏.有没有办法检查内存泄漏……或者请指导我在编写代码时必须采取的预防措施,以避免内存泄漏,尤其是在处理字符串和动态内存分配时…?

平台:Linux,gcc编译器

解决方法

不要使用动态内存分配.至少我们不在航空电子系统中.

我通常使用其中之一

> malloc仅在初始化时所需的内存.
如果失败则应用程序需要更多内存.这用于驱动程序需要跟踪N个对象但需要根据项目/应用程序配置N的情况.
在操作系统上,我使用最大内存值提供给应用程序的操作系统.
>使用免费和已用项目的链接列表
如果项目具有固定大小,则效果最佳.然后在初始化时,驱动程序读取确定它将支持的最大项目的配置项.这可以是来自内核空间的malloc.如果内存不足,则需要正确指定系统资源.
>使用应用程序可以分配的内存池,但仅作为整体删除.
在用于航空电子设备的嵌入式OpenGL系统中,我们允许应用程序创建可变大小的对象.池耗尽后,我们返回OUT_OF_MEMORY错误.我们不允许应用程序随机删除对象,因为这会导致内存碎片和非确定性运行时行为.我们允许他们删除每个对象并根据需要重新创建它们.这具有确定性行为.

根据系统的需要,一切都有某种约束或限制.这也适用于字符串数据.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...