linux 下检测你的代码是否有内存溢出!

czp_opensource 2008-03-24 01:24:36
源代码:http://bbs.mydlit.com/thread-324-1-1.html

原理:
1. C++: 重载了operator new(实际上调用了placement new) C: 用宏将malloc覆盖了。

使用方法:
1. 在工程中include "dbg_mem.h"
2. 在你想要查看的地方调用DumpMemoryLeakToScreen ()
3. 在你想要查看的地方调用DumpMemoryLeakToFile () 注:暂未实现

注: 目前只能在linux上跑, 未对应相应的windows版本。
...全文
307 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
GX198302 2008-05-07
  • 打赏
  • 举报
回复
memwatch 也可以
内容概要:本文深入解析了嵌入式RTOS与Linux系统中的内存管理机制,重点介绍了FreeRTOS的heap_4和heap_5动态内存分配方案、栈大小配置及溢出检测方法,并对比讲解了Linux用户空间内存管理、内存映射文件和共享内存等核心技术。通过智能家居网关的综合案例,展示了RTOS端传感器数据采集与Linux端数据处理通信的协同实现,同时提供了内存使用统计、泄漏检测、内存块跟踪等优化技巧与最佳实践,强调系统稳定性与性能调优。; 适合人群:具备嵌入式系统开发基础,熟悉C语言编程,有1-3年工作经验的嵌入式软件工程师或物联网系统开发者;对RTOS(如FreeRTOS)和Linux系统有一定使用经验的技术人员;希望深入了解底层内存管理机制并提升系统可靠性的研发人员。; 使用场景及目标:①掌握RTOS中动态内存分配与碎片管理机制,避免内存泄漏与栈溢出;②理解Linux下mmap、shm_open等高级内存管理接口的应用;③构建跨平台嵌入式系统(如边缘计算设备、智能网关)时实现高效内存协同管理;④通过监控与调试手段优化系统长期运行稳定性。; 阅读建议:建议结合FreeRTOS和Linux开发环境动手实践文中代码示例,重点关注内存分配策略选择、栈溢出钩子函数设置、共享内存交互设计等内容,并启用调试宏进行内存行为追踪,以深入理解内存管理的实际影响与优化路径。

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧