Change assert condition in error message handler
Activating assert() in the default error message handler isn't always good for producitve systems. Make this optional and enable only when a special configure option is given (i.e. for explicit debugging).
This commit is contained in:
parent
d6093c58f3
commit
631f7cde82
3 changed files with 23 additions and 3 deletions
7
NOTES
7
NOTES
|
@ -27,12 +27,15 @@ LIBASOUND_DEBUG is set (to a non-empty value).
|
||||||
When LIBASOUND_DEBUG=1 is set, the errors in hw_params configuration
|
When LIBASOUND_DEBUG=1 is set, the errors in hw_params configuration
|
||||||
will be dumped to stderr. Note that this will show even the non-fatal
|
will be dumped to stderr. Note that this will show even the non-fatal
|
||||||
errors of plug layer (trial-and-error of parameters).
|
errors of plug layer (trial-and-error of parameters).
|
||||||
When LIBASOUND_DEBUG=2 is set, the default error message handler calls
|
|
||||||
assert() to catch with a debugger, in addition to parameter debugging.
|
|
||||||
|
|
||||||
This feature is disabled when --with-debug=no is passed to configure,
|
This feature is disabled when --with-debug=no is passed to configure,
|
||||||
i.e. no strict checking is done in alsa-lib.
|
i.e. no strict checking is done in alsa-lib.
|
||||||
|
|
||||||
|
In addition, when --enable-debug-assert configure option is given and
|
||||||
|
when LIBASOUND_DEBUG_ASSERT=1 is set, the default error message
|
||||||
|
handler can call assert() to catch with a debugger. This feature was
|
||||||
|
formerly activated via LIBASOUND_DEBUG=2.
|
||||||
|
|
||||||
|
|
||||||
Blocking Open Mode
|
Blocking Open Mode
|
||||||
==================
|
==================
|
||||||
|
|
14
configure.in
14
configure.in
|
@ -169,6 +169,20 @@ else
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "$debug" = "yes"; then
|
||||||
|
AC_MSG_CHECKING(for debug assert)
|
||||||
|
AC_ARG_ENABLE(debug-assert,
|
||||||
|
AS_HELP_STRING([--enable-debug],
|
||||||
|
[enable assert call at the default error message handler]),
|
||||||
|
debug_assert="$enableval", debug_assert="no")
|
||||||
|
if test "$debug_assert" = "yes"; then
|
||||||
|
AC_MSG_RESULT(yes)
|
||||||
|
AC_DEFINE(ALSA_DEBUG_ASSERT,,[Enable assert at error message handler])
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT(no)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
dnl Temporary directory
|
dnl Temporary directory
|
||||||
AC_MSG_CHECKING(for tmpdir)
|
AC_MSG_CHECKING(for tmpdir)
|
||||||
AC_ARG_WITH(tmpdir,
|
AC_ARG_WITH(tmpdir,
|
||||||
|
|
|
@ -135,8 +135,11 @@ static void snd_err_msg_default(const char *file, int line, const char *function
|
||||||
fprintf(stderr, ": %s", snd_strerror(err));
|
fprintf(stderr, ": %s", snd_strerror(err));
|
||||||
putc('\n', stderr);
|
putc('\n', stderr);
|
||||||
va_end(arg);
|
va_end(arg);
|
||||||
if (! strcmp(verbose, "assert") || atoi(verbose) > 1)
|
#ifdef ALSA_DEBUG_ASSERT
|
||||||
|
verbose = getenv("LIBASOUND_DEBUG_ASSERT");
|
||||||
|
if (verbose && *verbose)
|
||||||
assert(0);
|
assert(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue