GCC memory leak detection equivalent to Microsoft crtdbg.h?

后端 未结 7 2129
悲&欢浪女
悲&欢浪女 2020-12-13 04:41

After many years of working on a general-purpose C++ library using the Microsoft MSVC compiler in Visual Studio, we are now porting it to Linux/Mac OS X (pray for us). I hav

7条回答
  •  北荒
    北荒 (楼主)
    2020-12-13 05:15

    Maybe you could use the Boehm garbage collector as a leak detection tool:

    http://www.hpl.hp.com/personal/Hans_Boehm/gc/leak.html

    From the site:

    #include "leak_detector.h"
    
    main() {
        int *p[10];
        int i;
        /* GC_find_leak = 1; for new collector versions not     */
        /* compiled with -DFIND_LEAK.               */
        for (i = 0; i < 10; ++i) {
        p[i] = malloc(sizeof(int)+i);
        }
        for (i = 1; i < 10; ++i) {
        free(p[i]);
        }
        for (i = 0; i < 9; ++i) {
        p[i] = malloc(sizeof(int)+i);
        }
        CHECK_LEAKS();
    }   
    

    (you get notified via stderr)

提交回复
热议问题