diff options
author | Monty <monty@mariadb.org> | 2017-07-03 11:35:44 +0300 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2017-08-24 01:05:50 +0200 |
commit | 536215e32fc43aa423684e9807640dcf3453924b (patch) | |
tree | d7249d3c4268c9a57becc5fea554e2379ffe1cf1 /dbug/dbug.c | |
parent | 52a1e4d613a6c7de759e93da8dfbd8cac08a11ee (diff) | |
download | mariadb-git-536215e32fc43aa423684e9807640dcf3453924b.tar.gz |
Added DBUG_ASSERT_AS_PRINTF compile flag
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.
Diffstat (limited to 'dbug/dbug.c')
-rw-r--r-- | dbug/dbug.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/dbug/dbug.c b/dbug/dbug.c index 4b96560b907..c9d63f527b4 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -2144,7 +2144,6 @@ void _db_flush_() (void) fflush(cs->stack->out_file->file); } - #ifndef __WIN__ void _db_suicide_() { @@ -2198,3 +2197,23 @@ int i_am_a_dummy_function() { } #endif /* DBUG_OFF */ + +/* + This function is called by default on DBUG_ASSERT() when compiled with + DBUG_ASSERT_AS_PRINTF +*/ + +#ifdef DBUG_ASSERT_AS_PRINTF + +static void default_my_dbug_assert_failed(const char *assert_expr, + const char *file, + unsigned long line) +{ + fprintf(stderr, "Warning: assertion failed: %s at %s line %lu\n", + assert_expr, file, line); +} + +void (*my_dbug_assert_failed)(const char *assert_expr, const char* file, + unsigned long line)= default_my_dbug_assert_failed; + +#endif /* DBUG_ASSERT_AS_PRINTF */ |