]> git.sur5r.net Git - openldap/commitdiff
Add CSRIMALLOC support
authorKurt Zeilenga <kurt@openldap.org>
Thu, 19 Aug 1999 18:13:36 +0000 (18:13 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Thu, 19 Aug 1999 18:13:36 +0000 (18:13 +0000)
servers/slapd/tools/slapcommon.c

index 3f5e0eef9fa00d96f4130947a40b31bac1fa0c67..19fca636040e9834cc8a7f975120a811de2762e8 100644 (file)
@@ -28,6 +28,11 @@ int          continuemode = 0;
 char   *ldiffile       = NULL;
 FILE   *ldiffp         = NULL;
 
+#ifdef CSRIMALLOC
+       char *leakfilename;
+       FILE *leakfile;
+#endif
+
 Backend *be = NULL;
 
 static void
@@ -80,6 +85,15 @@ slap_tool_init(
 
        progname = lutil_progname( name, argc, argv );
 
+#ifdef CSRIMALLOC
+       leakfilename = malloc( strlen( progname ) + sizeof(".leak") );
+       sprintf( leakfilename, "%s.leak", progname );
+       if( ( leakfile = fopen( leakfilename, "w" )) == NULL ) {
+               leakfile = stderr;
+       }
+       free( leakfilename );
+#endif
+
        switch( tool ) {
        case SLAPADD:
                options = "b:cd:f:l:n:stv";
@@ -212,6 +226,10 @@ slap_tool_init(
                be = &backends[dbnum];
        }
 
+#ifdef CSRIMALLOC
+       mal_leaktrace(1);
+#endif
+
        slap_startup( be );
 }
 
@@ -219,4 +237,8 @@ void slap_tool_destroy( void )
 {
        slap_shutdown( be );
        slap_destroy();
+
+#ifdef CSRIMALLOC
+       mal_dumpleaktrace( leakfile );
+#endif
 }