mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-03-07 14:18:15 +08:00
Add CSRIMALLOC support
This commit is contained in:
parent
1429fc36eb
commit
5b4e2498d9
@ -28,6 +28,11 @@ int continuemode = 0;
|
|||||||
char *ldiffile = NULL;
|
char *ldiffile = NULL;
|
||||||
FILE *ldiffp = NULL;
|
FILE *ldiffp = NULL;
|
||||||
|
|
||||||
|
#ifdef CSRIMALLOC
|
||||||
|
char *leakfilename;
|
||||||
|
FILE *leakfile;
|
||||||
|
#endif
|
||||||
|
|
||||||
Backend *be = NULL;
|
Backend *be = NULL;
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -80,6 +85,15 @@ slap_tool_init(
|
|||||||
|
|
||||||
progname = lutil_progname( name, argc, argv );
|
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 ) {
|
switch( tool ) {
|
||||||
case SLAPADD:
|
case SLAPADD:
|
||||||
options = "b:cd:f:l:n:stv";
|
options = "b:cd:f:l:n:stv";
|
||||||
@ -212,6 +226,10 @@ slap_tool_init(
|
|||||||
be = &backends[dbnum];
|
be = &backends[dbnum];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CSRIMALLOC
|
||||||
|
mal_leaktrace(1);
|
||||||
|
#endif
|
||||||
|
|
||||||
slap_startup( be );
|
slap_startup( be );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -219,4 +237,8 @@ void slap_tool_destroy( void )
|
|||||||
{
|
{
|
||||||
slap_shutdown( be );
|
slap_shutdown( be );
|
||||||
slap_destroy();
|
slap_destroy();
|
||||||
|
|
||||||
|
#ifdef CSRIMALLOC
|
||||||
|
mal_dumpleaktrace( leakfile );
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user