Debugging Solaris libumem为什么不为第一次动态分配显示内存泄漏

Debugging Solaris libumem为什么不为第一次动态分配显示内存泄漏,debugging,memory-leaks,solaris,libumem,Debugging,Memory Leaks,Solaris,Libumem,说 solaris10中的ulib mem仅显示60字节和30字节作为泄漏,为什么不显示128字节也泄漏?mdb和libumem检测到三个内存泄漏,代码如下: void main() { void *buff; buff = malloc(128); buff = malloc(60); buff = malloc(30); buff = malloc(16); free(buff); sleep(180); } mdb和libumem通


solaris10中的ulib mem仅显示60字节和30字节作为泄漏,为什么不显示128字节也泄漏?

mdb和libumem检测到三个内存泄漏,代码如下:

void main()
{
    void *buff;
    buff = malloc(128);
    buff = malloc(60);
    buff = malloc(30);
    buff = malloc(16);
    free(buff);
    sleep(180);
}

mdb和libumem通过以下代码检测到三个内存泄漏:

void main()
{
    void *buff;
    buff = malloc(128);
    buff = malloc(60);
    buff = malloc(30);
    buff = malloc(16);
    free(buff);
    sleep(180);
}

我使用的操作系统是:SunOS 5.10 sun4u sparc SUNW SUN-FIRE-V440编译器是:CC forte,但对于上面的程序,我总是只得到2个缓冲区120字节,因为泄漏在Solaris 10 update 8和Solaris 11 Express上都可以正常工作。您可能需要修补或升级操作系统。您还可以跟踪库调用,以确保某些编译器优化没有跳过无用的malloc.OS,我使用的是:SunOS 5.10 sun4u sparc SUNW SUN-FIRE-V440编译器是:CC forte,但对于上面的程序,我总是只得到2个缓冲区120字节,因为我在Solaris 10 update 8和Solaris 11 Express上都可以使用leaked。您可能需要修补或升级操作系统。您还可以跟踪库调用,以确保某些编译器优化没有跳过无用的malloc。