This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, DOC] Document ASAN_OPTIONS="halt_on_error" env variable.
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Martin LiÅka <mliska at suse dot cz>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 11 May 2016 16:20:40 +0200
- Subject: Re: [PATCH, DOC] Document ASAN_OPTIONS="halt_on_error" env variable.
- Authentication-results: sourceware.org; auth=none
- References: <57333E07 dot 3060404 at suse dot cz>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Wed, May 11, 2016 at 04:13:27PM +0200, Martin LiÅka wrote:
> It's bit confusing for a use that -fsanitize-recover=address does not recover
> an instrumented binary. As a default value of halt_on_error is set to 0 for address sanitizer,
> the binary fails on a first error.
>
> Following patch attempts to explain the ENV variable.
>
> Ready for trunk?
> Thanks,
> Martin
> >From 95f694a92428759773e5259323e82cbf49eade34 Mon Sep 17 00:00:00 2001
> From: marxin <mliska@suse.cz>
> Date: Wed, 11 May 2016 16:05:49 +0200
> Subject: [PATCH] Document ASAN_OPTIONS="halt_on_error" env variable.
>
> gcc/ChangeLog:
>
> 2016-05-11 Martin Liska <mliska@suse.cz>
>
> * doc/invoke.texi: Explain connection between -fsanitize-recover=address
> and ASAN_OPTIONS="halt_on_error=1".
> ---
> gcc/doc/invoke.texi | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
> index a54a0af..722647a 100644
> --- a/gcc/doc/invoke.texi
> +++ b/gcc/doc/invoke.texi
> @@ -9998,6 +9998,12 @@ for which this feature is experimental.
> accepted, the former enables recovery for all sanitizers that support it,
> the latter disables recovery for all sanitizers that support it.
>
> +The error recovery mode can be overwritten by @code{halt_on_error=1} provided
> +to one of the following environment variables: @env{ASAN_OPTIONS}, @env{TSAN_OPTIONS}
> +or @env{UBSAN_OPTIONS}. The default value is set to @code{halt_on_error=1},
> +only the address sanitizer by default does not recover and @code{halt_on_error=0}
> +must be provided.
It can be overridden (not overwritten?) only in one way I believe, i.e. the
code must be built with -fsanitize-recover=<whatever> (whether by default or
not) and the recovery must be enabled in the library (by default or using
env var) for successful recovery. If you compile without recovery, then no
matter what you do on the env var side it still will be fatal.
So the docs need to make that clear.
Jakub