Add backtrace call stack for debugging
This commit is contained in:
parent
d5b2c8fe8b
commit
db29a6228e
@ -160,3 +160,26 @@ int capwap_check_memory_leak(int verbose) {
|
|||||||
|
|
||||||
return ((g_memoryblocks != NULL) ? 1 : 0);
|
return ((g_memoryblocks != NULL) ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Backtrace call stack */
|
||||||
|
void capwap_backtrace_callstack(void) {
|
||||||
|
int i;
|
||||||
|
int count;
|
||||||
|
char** functions;
|
||||||
|
void* buffer[BACKTRACE_BUFFER];
|
||||||
|
|
||||||
|
/* */
|
||||||
|
count = backtrace(buffer, BACKTRACE_BUFFER);
|
||||||
|
if (count) {
|
||||||
|
functions = backtrace_symbols(buffer, count);
|
||||||
|
if (functions) {
|
||||||
|
|
||||||
|
/* Skipping capwap_backtrace_callstack function print out */
|
||||||
|
for (i = 1; i < count; i++) {
|
||||||
|
capwap_logging_debug("\t%s", functions[i]);
|
||||||
|
}
|
||||||
|
|
||||||
|
free(functions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -19,6 +19,8 @@ void capwap_free_debug(void* p, const char* file, const int line);
|
|||||||
int capwap_check_memory_leak(int verbose);
|
int capwap_check_memory_leak(int verbose);
|
||||||
void capwap_dump_memory(void);
|
void capwap_dump_memory(void);
|
||||||
|
|
||||||
|
void capwap_backtrace_callstack(void);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#define DEBUG_BREAKPOINT()
|
#define DEBUG_BREAKPOINT()
|
||||||
@ -30,6 +32,7 @@ void capwap_dump_memory(void);
|
|||||||
#define capwap_free(x) free(x)
|
#define capwap_free(x) free(x)
|
||||||
#define capwap_check_memory_leak(x) (0)
|
#define capwap_check_memory_leak(x) (0)
|
||||||
#define capwap_dump_memory() (0)
|
#define capwap_dump_memory() (0)
|
||||||
|
#define capwap_backtrace_callstack() (0)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user