DTrace
在查找内存泄露这个令人头疼的问题方面是一个特别好的工具。这不,在前两天的FreeBSD
邮件列表里,又利用DTrace
解决了内存泄露的一个bug
。命令很简单:
# dtrace -n 'dtmalloc::CAM_CCB: {printf("%s", execname); stack();}'
通过stack()
就可以看到哪里进行了malloc
。Patch
如下:
diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c
index 85b2ff9..1f7be4f 100644
--- a/sys/cam/[......]