summaryrefslogtreecommitdiff
path: root/include/my_stacktrace.h
Commit message (Collapse)AuthorAgeFilesLines
* Merge 10.2 into 10.3Marko Mäkelä2019-05-141-1/+1
|\
| * Merge branch '5.5' into 10.1Vicențiu Ciorbaru2019-05-111-1/+1
| |\
| | * Update FSF AddressVicențiu Ciorbaru2019-05-111-1/+1
| | | | | | | | | | | | * Update wrong zip-code
* | | MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from ↵Vladislav Vaintroub2018-02-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 'size_t' to 'type', possible loss of data) Handle string length as size_t, consistently (almost always:)) Change function prototypes to accept size_t, where in the past ulong or uint were used. change local/member variables to size_t when appropriate. This fix excludes rocksdb, spider,spider, sphinx and connect for now.
* | | Added DBUG_ASSERT_AS_PRINTF compile flagMonty2017-08-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If compiling a non DBUG binary with -DDBUG_ASSERT_AS_PRINTF asserts will be changed to printf + stack trace (of stack trace are enabled). - Changed #ifndef DBUG_OFF to #ifdef DBUG_ASSERT_EXISTS for those DBUG_OFF that was just used to enable assert - Assert checking that could greatly impact performance where changed to DBUG_ASSERT_SLOW which is not affected by DBUG_ASSERT_AS_PRINTF - Added one extra option to my_print_stacktrace() to get more silent in case of stack trace printing as part of assert.
* | | Enusure that my_global.h is included firstMichael Widenius2017-08-241-2/+0
|/ / | | | | | | | | | | | | | | | | | | - Added sql/mariadb.h file that should be included first by files in sql directory, if sql_plugin.h is not used (sql_plugin.h adds SHOW variables that must be done before my_global.h is included) - Removed a lot of include my_global.h from include files - Removed include's of some files that my_global.h automatically includes - Removed duplicated include's of my_sys.h - Replaced include my_config.h with my_global.h
* | [MDEV-9127] Crash reporter often fails to show the query that crashedVicențiu Ciorbaru2016-07-121-1/+1
| | | | | | | | | | | | | | | | Addreses are not necessarily between heap_start && heap_end. Malloc calls using mmap can place pointers outside these bounds. In this case, we'll warn the user that the query pointer is potentially invalid. However, we'll attempt to print the data anyway after we're done printing everything else.
* | MDEV-7398 mysqld segfaults on FreeBSD 10.1 i386 when built with clang 3.4Sergei Golubchik2015-06-161-2/+1
|/ | | | | | | | | | | | | | | | | | | | | | | | in cmake tests let's treat clang like gcc (same options, same builtins) in many cases. * don't check the compiler when * testing for -fvisibility=hidden support * testing for HAVE_ABI_CXA_DEMANGLE * testing for HAVE_GCC_ATOMIC_BUILTINS * when removing options with string(replace) * when running ${CC} --version (ignore the error instead) * run ABI checks for clang * use "canonical" gcc flags for clang * fix groonga too Also: * add cmake detection for gcc __atomic_* builtins. they might be supported (__ATOMIC_SEQ_CST is defined), but not for all operand sizes. In particular, 64-bit atomic load is problematic on i386 * cache check results for Windows * remove the test for HAVE_CXXABI_H (HAVE_ABI_CXA_DEMANGLE is suffifient)
* Define dummy my_init_stacktrace() to allow one to call it without #ifdef ↵Michael Widenius2012-04-031-3/+5
| | | | | | | | | | | | | | | HAVE_STACKTRACE Fixed compilation problem on windows. configure.cmake: Added test for pthread_attr_getguardsize include/my_stacktrace.h: Define dummy my_init_stacktrace() to allow one to call it without #ifdef HAVE_STACKTRACE sql/mysqld.cc: Move my_setstacksize() to fix compilation problem on windows Don't disable core on signal just becasue platform doesn't handle stack trace
* Merge mariadb 5.3->mariadb 5.5unknown2012-03-241-44/+0
|\
| * restore my_safe_printf_stderr for "crash-safe sigsegv handler"Sergei Golubchik2012-03-141-44/+0
| | | | | | | | | | | | use vsnprintf() use write() on windows, not WriteFile or fwrite() localtime_r is still a problem
| * Merge with MYSQL 5.1.61Michael Widenius2012-02-201-4/+65
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed README with link to source Merged InnoDB change to XtraDB README: Added information of where to find MariaDB code storage/archive/ha_archive.cc: Removed memset() of rows, a MariaDB checksum's doesn't touch not used data.
| | * Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONSTor Didriksen2011-11-301-4/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handle_segfault is the signal handler code of mysqld. however, it makes calls to potentially unsafe functions localtime_r, fprintf, fflush. include/my_stacktrace.h: Add safe versions of itoa() write() and snprintf(). libmysqld/CMakeLists.txt: Move signal handler to separate file. mysys/stacktrace.c: Remove unsafe function calls. sql/CMakeLists.txt: Move signal handler to separate file. sql/Makefile.am: Move signal handler to separate file. sql/mysqld.cc: Move signal handler to separate file. sql/signal_handler.cc: Remove unsafe function calls.
* | | alternative method of resolving addresses for safemalloc and crash handler.Sergei Golubchik2012-03-131-1/+5
| | | | | | | | | | | | don't link with libbfd, exec addr2line, if it's available at run time
* | | mysql-5.5 mergeSergei Golubchik2012-01-161-1/+64
|\ \ \
| * | | Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONSTor Didriksen2011-12-021-1/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handle_segfault is the signal handler code of mysqld. however, it makes calls to potentially unsafe functions localtime_r, fprintf, fflush. include/my_stacktrace.h: Add safe versions of itoa() write() and snprintf(). libmysqld/CMakeLists.txt: Move signal handler to separate file. mysys/stacktrace.c: Remove unsafe function calls. sql/CMakeLists.txt: Move signal handler to separate file. sql/mysqld.cc: Move signal handler to separate file. sql/set_var.h: Add missing #include dependency. sql/sys_vars.cc: Cleanup .h and .cc files. sql/sys_vars.h: Cleanup .h and .cc files.
* | | | 5.3 mergeSergei Golubchik2012-01-131-1/+2
|\ \ \ \ | | |/ / | |/| |
| * | | Initail merge with MySQL 5.1 (XtraDB still needs to be merged)Michael Widenius2011-11-211-2/+4
| |\ \ \ | | | |/ | | |/| | | | | Fixed up copyright messages.
* | | | new configure option: NOT_FOR_DISTRIBUTIONSergei Golubchik2011-12-141-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fix safemalloc to compile w/o libbfd. CMakeLists.txt: NOT_FOR_DISTRIBUTION option cmake/readline.cmake: simplify libedit/readline detection. never use bundled libedit. use system readline v6 only if NOT_FOR_DISTRIBUTION=1 configure.cmake: use libbfd only if NOT_FOR_DISTRIBUTION=1 include/my_stacktrace.h: link with libbfd even w/o safemalloc.
* | | | move safemalloc out of dbug.Sergei Golubchik2011-12-121-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | remeber a real backtrace for every allocation. make safemalloc to tract C++ new/delete too. collateral fixes to make the test suite pass.
* | | | another backtrace resolver that prints source file name and line numberSergei Golubchik2011-12-111-0/+18
| |_|/ |/| |
* | | Updated/added copyright headersKent Boortz2011-06-301-2/+2
|\ \ \ | | |/ | |/|
| * | Updated/added copyright headersKent Boortz2011-06-301-2/+4
| |/
* | Merge of mysql-5.1-bugteam into mysql-5.5-bugteam.Davi Arnaut2010-11-301-1/+1
|\ \ | |/
| * Bug#51817: incorrect assumption: thd->query at 0x2ab2a8360360 is an invalid ↵Davi Arnaut2010-11-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pointer The problem is that the logic which checks if a pointer is valid relies on a poor heuristic based on the start and end addresses of the data segment and heap. Apart from miscalculating the heap bounds, this approach also suffers from the fact that memory can come from places other than the heap. See Bug#58528 for a more detailed explanation. On Linux, the solution is to access the process's memory through /proc/self/task/<tid>/mem, which allows for retrieving the contents of pages within the virtual address space of the calling process. If a address range is not mapped, a input/output error is returned. client/mysqltest.cc: Use new interface to my_safe_print_str. include/my_stacktrace.h: Drop name from my_safe_print_str. mysys/stacktrace.c: Access the process's memory through a file descriptor and dump the contents of the memory range. The file descriptor offset is equivalent to a offset into the address space. Do not print the name of the variable associated with the address. It can be better accomplished at a higher level. sql/mysqld.cc: Put the variable dumping information within its own newline block. Use symbolic names which better convey information to the user.
* | WL#5486: Remove code for unsupported platformsDavi Arnaut2010-07-151-2/+0
|/ | | | Remove Netware specific code.
* Merging from 5.0-bugteamStaale Smedseng2010-01-271-1/+1
|
* Merge from 5.0Staale Smedseng2009-12-061-1/+1
|
* Bug#37003 Tests sporadically crashes with embedded serverDavi Arnaut2008-06-191-0/+5
| | | | | | | | | | | | | | | | | | | | 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. client/mysqltest.c: Only use stacktrace functions if they are available. configure.in: Check if the compiler defines __bss_start include/my_stacktrace.h: Enable stacktrace if system has backtrace functions. mysys/stacktrace.c: Use backtrace functions if the system supports it. sql/mysqld.cc: Only use stacktrace functions if they are available.
* Bug#37003 Tests sporadically crashes with embedded serverDavi Arnaut2008-06-181-0/+61
The problem was that when a embedded linked version of mysqltest crashed there was no way to obtain a stack trace if no core file is available. Another problem is that the embedded version of libmysql was not behaving (crash) the same as the non-embedded with respect to sending commands to a explicitly closed connection. The solution is to generate a mysqltest's stack trace on crash and to enable "reconnect" if the connection handle was explicitly closed so the behavior matches the non-embedded one. client/CMakeLists.txt: Link mysys to mysqltest. client/Makefile.am: Link mysys to mysqltest. client/mysqltest.c: Add fatal signal handling with backtracing for Unix and Windows. configure.in: Add check for weak symbols support and remove a spurious word. include/Makefile.am: Add new header with prototype for stack tracing functions. include/my_stacktrace.h: Add new header with prototype for stack tracing functions. libmysqld/CMakeLists.txt: stack tracing is now part of mysys. libmysqld/Makefile.am: stack tracing is now part of mysys. libmysqld/lib_sql.cc: Re-connect if connection was explicitly closed. This is done to match the behavior of the non-embeded libmysql. mysql-test/t/sql_low_priority_updates_func.test: Test expects parallelism between queries that cannot be guaranteed under embedded. mysys/CMakeLists.txt: Add stacktrace to mysys. mysys/Makefile.am: Add stacktrace to mysys. mysys/stacktrace.c: Move stacktrace to mysys and add weak symbol for the C++ name de-mangling function so that it can later be overridden in C++ code. Also add my_ prefix to exported functions. sql/CMakeLists.txt: stacktrace was moved to mysys. sql/Makefile.am: stacktrace was moved to mysys. sql/mysqld.cc: Add my_ prefix to mysys functions.