extended statusall output
[strongswan.git] / src / libstrongswan / utils / leak_detective.h
1 /**
2 * @file leak_detective.h
3 *
4 * @brief malloc/free hooks to detect leaks.
5 */
6
7 /*
8 * Copyright (C) 2006 Martin Willi
9 * Hochschule fuer Technik Rapperswil
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; either version 2 of the License, or (at your
14 * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
15 *
16 * This program is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19 * for more details.
20 */
21
22 #ifndef LEAK_DETECTIVE_H_
23 #define LEAK_DETECTIVE_H_
24
25
26 #include <utils/logger_manager.h>
27
28 /**
29 * Log status information about allocation
30 */
31 void leak_detective_status(logger_t *logger);
32
33 #ifdef LEAK_DETECTIVE
34
35 /**
36 * Max number of stack frames to include in a backtrace.
37 */
38 #define STACK_FRAMES_COUNT 30
39
40 /**
41 * Initialize leak detective, activates it
42 */
43 void leak_detective_init();
44
45 /**
46 * Cleanup leak detective, deactivates it
47 */
48 void leak_detective_cleanup();
49
50 #else /* !LEAK_DETECTIVE */
51
52 #define leak_detective_init() {}
53 #define leak_detective_cleanup() {}
54
55 #endif /* LEAK_DETECTIVE */
56
57 #endif /* LEAK_DETECTIVE_H_ */