mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
e7f3c5fc44
Another problem is that the backtrace facility wasn't being enabled for non-Linux targets even if the target OS has the backtrace functions. Also, the stacktrace functions inside mysqltest were being used without proper checks for their presence in the build.
66 lines
1.8 KiB
C
66 lines
1.8 KiB
C
/* Copyright (C) 2000 MySQL AB
|
|
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
|
|
|
#ifndef _my_stacktrace_h_
|
|
#define _my_stacktrace_h_
|
|
|
|
#include <my_global.h>
|
|
|
|
#ifdef TARGET_OS_LINUX
|
|
#if defined (__x86_64__) || defined (__i386__) || \
|
|
(defined(__alpha__) && defined(__GNUC__))
|
|
#define HAVE_STACKTRACE 1
|
|
#endif
|
|
#elif defined(__WIN__)
|
|
#define HAVE_STACKTRACE 1
|
|
#endif
|
|
|
|
#if HAVE_BACKTRACE && (HAVE_BACKTRACE_SYMBOLS || HAVE_BACKTRACE_SYMBOLS_FD)
|
|
#undef HAVE_STACKTRACE
|
|
#define HAVE_STACKTRACE 1
|
|
#endif
|
|
|
|
#if !defined(__NETWARE__)
|
|
#define HAVE_WRITE_CORE
|
|
#endif
|
|
|
|
#if HAVE_BACKTRACE && HAVE_BACKTRACE_SYMBOLS && \
|
|
HAVE_CXXABI_H && HAVE_ABI_CXA_DEMANGLE && \
|
|
HAVE_WEAK_SYMBOL
|
|
#define BACKTRACE_DEMANGLE 1
|
|
#endif
|
|
|
|
C_MODE_START
|
|
|
|
#if defined(HAVE_STACKTRACE) || defined(HAVE_BACKTRACE)
|
|
void my_init_stacktrace();
|
|
void my_print_stacktrace(uchar* stack_bottom, ulong thread_stack);
|
|
void my_safe_print_str(const char* name, const char* val, int max_len);
|
|
void my_write_core(int sig);
|
|
#if BACKTRACE_DEMANGLE
|
|
char *my_demangle(const char *mangled_name, int *status);
|
|
#endif
|
|
#ifdef __WIN__
|
|
void my_set_exception_pointers(EXCEPTION_POINTERS *ep);
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef HAVE_WRITE_CORE
|
|
void my_write_core(int sig);
|
|
#endif
|
|
|
|
C_MODE_END
|
|
|
|
#endif /* _my_stacktrace_h_ */
|