我遇到过这篇文章: http: //keramida.wordpress.com/2008/10/15/extracting-useful-info-from-freebsd-malloc-tracing/
好像文章中引用的那个脚本已经过时了,第一条评论的链接是404。
Valgrind 似乎没有在 FreeBSD 上为我工作,因为一些系统调用和我自己实现它们的错误,我没有兴趣这样做。
有没有像这个脚本所说的那样可以跟踪 malloc/free 的东西?
谢谢
我遇到过这篇文章: http: //keramida.wordpress.com/2008/10/15/extracting-useful-info-from-freebsd-malloc-tracing/
好像文章中引用的那个脚本已经过时了,第一条评论的链接是404。
Valgrind 似乎没有在 FreeBSD 上为我工作,因为一些系统调用和我自己实现它们的错误,我没有兴趣这样做。
有没有像这个脚本所说的那样可以跟踪 malloc/free 的东西?
谢谢
devel/valgrind端口最近已升级,现在可以满足您的需求。
但是 FreeBSD 的 malloc 实现(也称为 phk-malloc)也有一些内置功能。阅读malloc(3)手册页了解详细信息——“TUNING”部分也包含对开发人员有用的信息。
在 Linux 上,您可以在程序中启用mtrace,但这是代码更改。
在 OpenBSD 上,您可以尝试 malloc 统计信息。
Google 的泄漏检查器可能也值得一看,并且与 mtrace 不同,您可以使用 LD_PRELOAD 来避免重新编译。
您可以尝试使用devel/ElectricFence
端口检测(链接)您的代码。只要您的代码不分配大量的小块,这应该可以帮助您找到过去分配的内存的访问。如果您只是检查泄漏,ElectricFence 可能不是您想要的。