开发者社区 问答 正文

c写的程序,如何快速查找内存泄露的位置

初学linux下c开发,遇到了内存泄露问题,怎么样快速排查是哪个变量出的问题?

展开
收起
a123456678 2016-06-07 17:56:00 2028 分享 版权
2 条回答
写回答
取消 提交回答
  • 最快的办法是检查代码,软件推荐valgrind,附一篇教程:https://www.oschina.net/translate/valgrind-memcheck

    2019-07-17 19:30:35
    赞同 展开评论
  • 既然是「初学Linux下C开发」,那,你确定你是遇到了内存泄露而不是Segment fault或者Stack overflow?不是常驻进程,内存泄露了一般觉察不到啊。

    如果是内存泄露,简单的程序自己检查下malloc和free是否对称就行了;除了Valgrind,简单的可以用libmtrace,它就是hook了malloc和free调用,自动检查有没有malloc而没有free的内存。

    2019-07-17 19:30:35
    赞同 展开评论
问答分类:
问答地址: