请问怎么测试/调试 malloc/free 管理的内存?

发布于 2022-10-15 07:19:54 字数 28 浏览 22 评论 0

请问怎么测试/调试 malloc/free 管理的内存?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

孤者何惧 2022-10-22 07:19:54

不知道你想要知道什么{:3_184:}

烟雨扶苏 2022-10-22 07:19:54
  1. #ifdef __MALLOC__
  2. static void* __FUN_MALLOC__(const char *file, const int line, const char *function, const int size)
  3. {
  4.         void *p=malloc(size);
  5.         fprintf(stdout," [%s:%d:%s] malloc heap addr:%X\n",file,line,function,(unsigned int)p);
  6.         fflush(stdout);
  7.         return p;
  8. }
  9. static void __FUN_FREE__(const char *file, const int line, const char *function, void *p)
  10. {
  11.         free(p);
  12.         fprintf(stdout," [%s:%d:%s] free heap addr:%X\n",file,line,function,(unsigned int)p);
  13.         fflush(stdout);
  14.         return;
  15. }
  16. #define MALLOC(size) __FUN_MALLOC__(__FILE__,__LINE__,__FUNCTION__,size)
  17. #define FREE(p) __FUN_FREE__(__FILE__,__LINE__,__FUNCTION__,p)
  18. #else
  19. #define MALLOC(size) malloc(size)
  20. #define FREE(p) free(p)
  21. #endif//__MALLOC__

复制代码

似狗非友 2022-10-22 07:19:54

这个我常用的,对应log中,只要grep malloc 和 free, 看地址是否一一对应,就知道哪里有内存泄漏了

贩梦商人 2022-10-22 07:19:54

这个我常用的,对应log中,只要grep malloc 和 free, 看地址是否一一对应,就知道哪里有内存泄漏了
net_robber 发表于 2011-05-11 10:36

经典, 表示感谢。

往昔成烟 2022-10-22 07:19:54

谢谢 net_robber 大侠。

剑心龙吟 2022-10-22 07:19:54

这个我常用的,对应log中,只要grep malloc 和 free, 看地址是否一一对应,就知道哪里有内存泄漏了
net_robber 发表于 2011-05-11 10:36

再次请教一下, 怎么 grep malloc/free的?
grep我不会用呀,...  我想用哈希,不过内存开的太大了。

泛泛之交 2022-10-22 07:19:54

回复 4# net_robber

    很漂亮

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文