diff --git a/samba/include/config.h b/samba/include/config.h index b99c4d5..dd85ee4 100644 --- a/samba/include/config.h +++ b/samba/include/config.h @@ -38,7 +38,7 @@ /* #define HAVE_ATTR_XATTR_H 1 */ /* Define to 1 if you have the `backtrace' function. */ -#define HAVE_BACKTRACE 1 +#define HAVE_BACKTRACE 0 /* Define to 1 if you have the header file. */ /* #undef HAVE_BLKID_BLKID_H */ diff --git a/samba/include/config_tmp.h b/samba/include/config_tmp.h index e85cb77..9c7e93c 100644 --- a/samba/include/config_tmp.h +++ b/samba/include/config_tmp.h @@ -38,7 +38,7 @@ #define HAVE_ATTR_XATTR_H 1 /* Define to 1 if you have the `backtrace' function. */ -#define HAVE_BACKTRACE 1 +#define HAVE_BACKTRACE 0 /* Define to 1 if you have the header file. */ /* #undef HAVE_BLKID_BLKID_H */ diff --git a/samba/lib/util/fault.c b/samba/lib/util/fault.c index c7d6b7e..a9cdabb 100644 --- a/samba/lib/util/fault.c +++ b/samba/lib/util/fault.c @@ -36,83 +36,6 @@ static struct { static const char *progname; -#ifdef HAVE_BACKTRACE -#include -#elif HAVE_LIBEXC_H -#include -#endif - -/** - * Write backtrace to debug log - */ -_PUBLIC_ void call_backtrace(void) -{ -#ifdef HAVE_BACKTRACE -#ifndef BACKTRACE_STACK_SIZE -#define BACKTRACE_STACK_SIZE 64 -#endif - void *backtrace_stack[BACKTRACE_STACK_SIZE]; - size_t backtrace_size; - char **backtrace_strings; - - /* get the backtrace (stack frames) */ - backtrace_size = backtrace(backtrace_stack,BACKTRACE_STACK_SIZE); - backtrace_strings = backtrace_symbols(backtrace_stack, backtrace_size); - - DEBUG(0, ("BACKTRACE: %lu stack frames:\n", - (unsigned long)backtrace_size)); - - if (backtrace_strings) { - int i; - - for (i = 0; i < backtrace_size; i++) - DEBUGADD(0, (" #%u %s\n", i, backtrace_strings[i])); - - /* Leak the backtrace_strings, rather than risk what free() might do */ - } - -#elif HAVE_LIBEXC - -#define NAMESIZE 32 /* Arbitrary */ -#ifndef BACKTRACE_STACK_SIZE -#define BACKTRACE_STACK_SIZE 64 -#endif - - /* The IRIX libexc library provides an API for unwinding the stack. See - * libexc(3) for details. Apparantly trace_back_stack leaks memory, but - * since we are about to abort anyway, it hardly matters. - * - * Note that if we paniced due to a SIGSEGV or SIGBUS (or similar) this - * will fail with a nasty message upon failing to open the /proc entry. - */ - { - uint64_t addrs[BACKTRACE_STACK_SIZE]; - char * names[BACKTRACE_STACK_SIZE]; - char namebuf[BACKTRACE_STACK_SIZE * NAMESIZE]; - - int i; - int levels; - - ZERO_ARRAY(addrs); - ZERO_ARRAY(names); - ZERO_ARRAY(namebuf); - - for (i = 0; i < BACKTRACE_STACK_SIZE; i++) { - names[i] = namebuf + (i * NAMESIZE); - } - - levels = trace_back_stack(0, addrs, names, - BACKTRACE_STACK_SIZE, NAMESIZE); - - DEBUG(0, ("BACKTRACE: %d stack frames:\n", levels)); - for (i = 0; i < levels; i++) { - DEBUGADD(0, (" #%d 0x%llx %s\n", i, addrs[i], names[i])); - } - } -#undef NAMESIZE -#endif -} - _PUBLIC_ const char *panic_action = NULL; /** @@ -143,8 +66,6 @@ _PUBLIC_ void smb_panic(const char *why) } DEBUG(0,("PANIC: %s\n", why)); - call_backtrace(); - #ifdef SIGABRT CatchSignal(SIGABRT,SIGNAL_CAST SIG_DFL); #endif diff --git a/samba/lib/util/util_proto.h b/samba/lib/util/util_proto.h index efc787f..bb48f46 100644 --- a/samba/lib/util/util_proto.h +++ b/samba/lib/util/util_proto.h @@ -44,7 +44,6 @@ _PUBLIC_ void register_debug_handlers(const char *name, struct debug_ops *ops); /* The following definitions come from lib/util/fault.c */ -_PUBLIC_ void call_backtrace(void); _PUBLIC_ void smb_panic(const char *why); _PUBLIC_ void fault_setup(const char *pname); _PUBLIC_ BOOL register_fault_handler(const char *name, void (*fault_handler)(int sig));