社区
C语言
帖子详情
基于C语言的内存泄漏检测方法
5852
2009-02-20 08:42:55
有没有比较好的算法或者开源库可以使用的,大家帮忙推荐一下。
...全文
348
17
打赏
收藏
基于C语言的内存泄漏检测方法
有没有比较好的算法或者开源库可以使用的,大家帮忙推荐一下。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
conquer
2009-03-10
打赏
举报
回复
purify
linren
2009-03-10
打赏
举报
回复
VC的话,可以试一试"PageHeap"工具
candy110
2009-03-10
打赏
举报
回复
我们的代码里面都是自己写的.
其实你也可以自己写.
就是重写malloc,free.
用链表来实现.
最终程序退出的时候链表上应该没有数据.
howema
2009-03-10
打赏
举报
回复
linux下好像可以用查看交换分区的方式,去看每个进程的内存使用情况,如果一个进程的内存只增加,不减少,就有可能内存泄漏了!
lingyin55
2009-02-23
打赏
举报
回复
mark
Dinelgua
2009-02-23
打赏
举报
回复
可以自己实现内存池管理
通过分配内存是加边界,增加标志位,引用计数等保证内存资源正确回收
msnsnd
2009-02-23
打赏
举报
回复
可以用链表实现吧,malloc一个就把地址插入链表,然后free的时候就检查是否释放了
ForestDB
2009-02-23
打赏
举报
回复
有兴趣可以看看lcc的实现,貌似那个作者实现了C的垃圾回收。
沙漠里的海豚
2009-02-23
打赏
举报
回复
linux下可以用valgrind工具检测 呵呵
whuyotc
2009-02-23
打赏
举报
回复
mark
happytang
2009-02-21
打赏
举报
回复
VC和java都是有工具的,开源库上也有;可以说也不是完全能检测出来的
纯c特别是嵌入式应用中很少,肯定要自己弄的;需要再内存管理中增加控制头的标记,计数等,然后定时核查的等
dongpy
2009-02-21
打赏
举报
回复
如果只是为了查看堆内存使用情况,可以重写malloc和free接口。
void* Malloc(size_t sz)
{
void* p = malloc(sz);
//添加一条记录(p,sz)
return p;
}
void Free(void *p)
{
//查找并删除记录
free(p);
}
struct record
{
void* p;
size_t sz;
};
dongpy
2009-02-21
打赏
举报
回复
查一下垃圾收集器相关资料
猫已经找不回了
2009-02-21
打赏
举报
回复
懒得找了,帮顶吧.
hhllxxss
2009-02-21
打赏
举报
回复
[Quote=引用 2 楼 waizqfor 的回复:]
引用楼主 5852 的帖子:
有没有比较好的算法或者开源库可以使用的,大家帮忙推荐一下。
算法挺多的 LZ看看 这个解决内存泄露的方法 _CrtDumpMemoryLeaks函数就可以
http://c.chinaitlab.com/vc/200811/769507.html
[/Quote]
up!!!
waizqfor
2009-02-20
打赏
举报
回复
[Quote=引用楼主 5852 的帖子:]
有没有比较好的算法或者开源库可以使用的,大家帮忙推荐一下。
[/Quote]
算法挺多的 LZ看看 这个解决内存泄露的方法 _CrtDumpMemoryLeaks函数就可以
http://c.chinaitlab.com/vc/200811/769507.html
lei_zhuyan
2009-02-20
打赏
举报
回复
公司里面有个专门检测这个的,但是平时只用,看不到怎么实现的。
呵呵 UP
UML State Machine Wizard VC Addin 7.0
UML StateWizard for VS.NET/VC6/EVC4可为嵌入式系统或Win32/WinCE开发带来可视化、基于可移植
C语言
的UML状态机编程机制。同时,作为Visual C++的插件,它使得开发者可以在强大的Visual C++开发环境中进行嵌入式系统的编写、调试以及模拟,从而使您的程序可以在最短时间内投入使用! UML StateWizard采用了状态机模型的开发
方法
,并与Visual C++紧密合作。有效地利用了Visual Studio强大的代码编写和调试能力,完成嵌入式应用程序在Windows平台上的设计和模拟。 如同Visual C++中的Class Wizard(类向导)一样,UML StateWizard具有以下特点: > (1)在集成开发环境中使用流畅,免去您在设计和开发环境间的不断切换之苦 > (2)不需要价格昂贵的重量级建模工具,您一样可以运用状态图 / 状态树为嵌入式系统建模 > (3)在基于状态机框架下,您可以快捷地开发嵌入式软件 > (4)充分地发挥状态图的能力,为您实现可自由移植的标准
C语言
代码 > > UML StateWizard为嵌入式系统开发提供了整套解决方案,包括: > 1)状态图 > 无需使用昂贵的重量级CASE工具,状态图即可让您一览应用程序的逻辑结构和流程。它形象地描述了层次化的状态关系。此外,状态图还可以直观地将状态间的迁移展现在您的眼前 > 2)状态树 > 是运用状态机进行开发的有利助手,状态树位于Visual C++的Workspace Tab窗口。在开发过程中,它能够提供一个状态机代码自动生成框架,帮您轻松地完成诸如“新建一个状态机应用”、“新建一个状态”、“定义状态的入口/出口函数”以及“定义事件处理函数”这些重复性的工作。在调试期,您还可以在状态树中获得跟踪功能支持 > 3)状态自动机引擎 > 管理着所有的状态机应用(包括激活应用和非激活应用)。每个状态机应用都运行在一个状态机之上。引擎可以将状态机事件合理分派到具体的应用中,同时调用相关函数以处理状态机事件 > 4)数据资源产生器 > 只需使用Visual C++的资源编辑器,您就魔术般产生多种基于嵌入式系统开发的UI数据资源,包括ASCII / Unicode文本字符串,层次化菜单,位图和字体 > 5)模拟和调试支持 > 提供了大量用于在Windows平台下模拟嵌入式应用程序的API函数和调试工具。通过运用这些工具,您可以不费劲地找出内存泄露 / 内存覆盖的“臭虫”、判断内存是否分配合理、
检测
程序在限定内存下的运行情况和为后期分析记录下分配信息 > 6)代码量统计支持 > 让您轻松统计C / C++项目的工作量 > 7)内存开销分析器 > 让您及时了解程序中内存的使用情况 > > UML StateWizard 没有任何功能限制,您可尽情使用.
c语言
内存泄露测试工具,
c语言
内存泄漏
检测
方法
之封装malloc,free详解
evn:gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)摘要:
方法
简介如何
检测
项目中是否有
内存泄漏
(附代码)如何定位项目中的
内存泄漏
(附代码)心得和建议1.
方法
简介这种
方法
原理很简单, 正常情况下程序启动到正常终止malloc和free调用的次数应该相同, 如果malloc调用次数>free调用次数, 那么项目中就会出现内...
C++第3课:C++内存泄露
检测
原理及案例实战
C++第3课:C++内存泄露
检测
原理及案例实战本课程侧重于C++的内存管理及泄露
检测
。我将带领大家学习OS的内存管理机制、C++的堆和栈、内存泄露及
检测
等。本课程具体的内容主要包括C++内存泄露案例、VS2015内存泄露
检测
、野指针、VirtualAlloc/HeapAlloc/malloc/new的区别、C++堆和栈的内存管理、栈简介、堆简介、堆与栈区别、栈的内存分配、Windows的虚拟内存技术、Windows的内存映射文件技术、Linux的虚拟内存技术、Linux的Valgrind内存泄露
检测
、Windows的VLD内存泄露
检测
、C++内存泄露
检测
方式之对象计数、C++内存泄露
检测
方式之重载new和delete、C++内存泄露
检测
方式之智能指针等。
一款跨平台的
c语言
内存泄漏
检测
工具
在嵌入式开发中,
内存泄漏
是非常常见而又难以发现的问题,而且对于开发人员来说, 也会经常面临同一套代码在linux,rtos等不同平台进行移植开发的情况。在基于linux开发时,我们可以借助valgrind、mtrace、dmalloc等工具来发现潜在的问题,这些工具功能强大,需要掌握一些调试使用技巧,对于初学者而言还是需要花费一番功夫的;而在rtos等平台开发时,第三方工具往往就...
内存泄漏
检测
工具
当应用程序在Windows中运行时,Windows必须实时"跟踪"该应用程序的运行,并保留与之相关的许多信息,如按钮、光标、菜单的位置和位图、窗口的状况等,这些信息由Windows保留在一种叫堆的内存块中,堆的英文为Heap。从这里的系统资源分类和大小我们应该明白,不管CPU是P4还是486,内存是8M还是1G,所有Windows的用户都拥有同样大小的系统资源(堆),用户不能自已增加或减少系统资源的大小,这是由操作系统决定的,与硬件档次没有任何关系。对于特定的环境,偶发性的也许就变成了常发性的。...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章